Skip to content

Commit d369a69

Browse files
"Find route in mobile map package" sample (#191)
* Find Route in Mobile Map Package * Title card and basic map page * locator task and add graphic markers * reverse geocode and select graphic * routing * enable geocoding only when available * clear warning * Future/await * clean up theme * SafeArea * screenshot * simplify * simplify * cleanup * comments * download message * Update lib/samples/find_route_in_mobile_map_package/find_route_in_mobile_map_package.dart Co-authored-by: Jen Merritt <jmerritt@esri.com> * Update lib/samples/find_route_in_mobile_map_package/find_route_in_mobile_map_package.dart Co-authored-by: Jen Merritt <jmerritt@esri.com> * Update lib/samples/find_route_in_mobile_map_package/find_route_in_mobile_map_package.dart Co-authored-by: Jen Merritt <jmerritt@esri.com> * rename method * clean up * consistent AppBar theme * consistent AppBar theme * second screenshot --------- Co-authored-by: Jen Merritt <jmerritt@esri.com>
1 parent 554aca6 commit d369a69

File tree

11 files changed

+564
-5
lines changed

11 files changed

+564
-5
lines changed

assets/generated_samples_list.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1250,6 +1250,49 @@
12501250
"title": "Find route",
12511251
"key": "find_route"
12521252
},
1253+
"find_route_in_mobile_map_package": {
1254+
"category": "Maps",
1255+
"description": "Display maps and use locators to enable search and routing offline using a Mobile Map Package.",
1256+
"ignore": false,
1257+
"images": [
1258+
"find_route_in_mobile_map_package.png"
1259+
],
1260+
"keywords": [
1261+
"disconnected",
1262+
"field mobility",
1263+
"geocode",
1264+
"network",
1265+
"network analysis",
1266+
"offline",
1267+
"routing",
1268+
"search",
1269+
"transportation",
1270+
"GeocodeResult",
1271+
"MobileMapPackage",
1272+
"ReverseGeocodeParameters",
1273+
"Route",
1274+
"RouteParameters",
1275+
"RouteResult",
1276+
"RouteTask",
1277+
"TransportationNetworkDataset"
1278+
],
1279+
"redirect_from": [],
1280+
"relevant_apis": [
1281+
"GeocodeResult",
1282+
"MobileMapPackage",
1283+
"ReverseGeocodeParameters",
1284+
"Route",
1285+
"RouteParameters",
1286+
"RouteResult",
1287+
"RouteTask",
1288+
"TransportationNetworkDataset"
1289+
],
1290+
"snippets": [
1291+
"find_route_in_mobile_map_package.dart"
1292+
],
1293+
"title": "Find route in mobile map package",
1294+
"key": "find_route_in_mobile_map_package"
1295+
},
12531296
"generate_offline_map": {
12541297
"category": "Edit and Manage Data",
12551298
"description": "Take a web map offline.",

lib/main.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,12 @@ void main() {
3333
ArcGISEnvironment.apiKey = apiKey;
3434
}
3535

36+
final colorScheme = ColorScheme.fromSeed(seedColor: Colors.deepPurple);
3637
runApp(
3738
MaterialApp(
3839
theme: ThemeData(
39-
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
40+
colorScheme: colorScheme,
41+
appBarTheme: AppBarTheme(backgroundColor: colorScheme.inversePrimary),
4042
),
4143
home: const SampleViewerApp(),
4244
),
@@ -85,7 +87,6 @@ class _SampleViewerAppState extends State<SampleViewerApp> {
8587
return Scaffold(
8688
appBar: AppBar(
8789
title: const Text(title),
88-
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
8990
actions: [
9091
IconButton(
9192
icon: const Icon(Icons.info_outline),
@@ -108,8 +109,6 @@ class _SampleViewerAppState extends State<SampleViewerApp> {
108109
onPressed: () => Navigator.pop(context),
109110
),
110111
],
111-
backgroundColor:
112-
Theme.of(context).colorScheme.inversePrimary,
113112
shape: const RoundedRectangleBorder(
114113
borderRadius: BorderRadius.vertical(
115114
top: Radius.circular(30.0),

lib/models/samples_widget_list.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import 'package:arcgis_maps_sdk_flutter_samples/samples/filter_by_definition_exp
3737
import 'package:arcgis_maps_sdk_flutter_samples/samples/find_address_with_reverse_geocode/find_address_with_reverse_geocode.dart';
3838
import 'package:arcgis_maps_sdk_flutter_samples/samples/find_closest_facility_from_point/find_closest_facility_from_point.dart';
3939
import 'package:arcgis_maps_sdk_flutter_samples/samples/find_route/find_route.dart';
40+
import 'package:arcgis_maps_sdk_flutter_samples/samples/find_route_in_mobile_map_package/find_route_in_mobile_map_package.dart';
4041
import 'package:arcgis_maps_sdk_flutter_samples/samples/generate_offline_map/generate_offline_map.dart';
4142
import 'package:arcgis_maps_sdk_flutter_samples/samples/group_layers_together/group_layers_together.dart';
4243
import 'package:arcgis_maps_sdk_flutter_samples/samples/identify_features_in_wms_layer/identify_features_in_wms_layer.dart';
@@ -119,6 +120,7 @@ final sampleWidgets = {
119120
'find_closest_facility_from_point': () =>
120121
const FindClosestFacilityFromPoint(),
121122
'find_route': () => const FindRoute(),
123+
'find_route_in_mobile_map_package': () => const FindRouteInMobileMapPackage(),
122124
'generate_offline_map': () => const GenerateOfflineMap(),
123125
'group_layers_together': () => const GroupLayersTogether(),
124126
'identify_features_in_wms_layer': () => const IdentifyFeaturesInWmsLayer(),
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Find route in mobile map package
2+
3+
Display maps and use locators to enable search and routing offline using a Mobile Map Package.
4+
5+
![Image of find route in mobile map package](find_route_in_mobile_map_package.png)
6+
![Image of Transportation map](find_route_in_mobile_map_package_transportation.png)
7+
8+
## Use case
9+
10+
Mobile map packages make it easy to transmit and store the necessary components for an offline map experience including: transportation networks (for routing/navigation), locators (address search, forward and reverse geocoding), and maps.
11+
12+
A field worker might download a mobile map package to support their operations while working offline.
13+
14+
## How to use the sample
15+
16+
A list of maps from a mobile map package will be displayed. If the map contains transportation networks, the list item will have a navigation icon. Tap on a map in the list to open it. If a locator task is available, tap on the map to reverse geocode the location's address. If transportation networks are available, a route will be calculated between geocode locations.
17+
18+
## How it works
19+
20+
1. Create a `MobileMapPackage` using `MobileMapPackage.withFileUri()`.
21+
2. Get a list of maps inside the package using the `maps` property.
22+
3. If the package has a locator, access it using the `locatorTask` property.
23+
4. To see if a map contains transportation networks, check each map's `transportationNetworks` property.
24+
25+
## Relevant API
26+
27+
* GeocodeResult
28+
* MobileMapPackage
29+
* ReverseGeocodeParameters
30+
* Route
31+
* RouteParameters
32+
* RouteResult
33+
* RouteTask
34+
* TransportationNetworkDataset
35+
36+
## Offline data
37+
38+
This sample uses the [San Francisco](https://www.arcgis.com/home/item.html?id=260eb6535c824209964cf281766ebe43) mobile map package and the [Yellowstone](https://www.arcgis.com/home/item.html?id=e1f3a7254cb845b09450f54937c16061) mobile map package. Both are downloaded from ArcGIS Online automatically.
39+
40+
## Tags
41+
42+
disconnected, field mobility, geocode, network, network analysis, offline, routing, search, transportation
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"category": "Maps",
3+
"description": "Display maps and use locators to enable search and routing offline using a Mobile Map Package.",
4+
"ignore": false,
5+
"images": [
6+
"find_route_in_mobile_map_package.png"
7+
],
8+
"keywords": [
9+
"disconnected",
10+
"field mobility",
11+
"geocode",
12+
"network",
13+
"network analysis",
14+
"offline",
15+
"routing",
16+
"search",
17+
"transportation",
18+
"GeocodeResult",
19+
"MobileMapPackage",
20+
"ReverseGeocodeParameters",
21+
"Route",
22+
"RouteParameters",
23+
"RouteResult",
24+
"RouteTask",
25+
"TransportationNetworkDataset"
26+
],
27+
"redirect_from": [],
28+
"relevant_apis": [
29+
"GeocodeResult",
30+
"MobileMapPackage",
31+
"ReverseGeocodeParameters",
32+
"Route",
33+
"RouteParameters",
34+
"RouteResult",
35+
"RouteTask",
36+
"TransportationNetworkDataset"
37+
],
38+
"snippets": [
39+
"find_route_in_mobile_map_package.dart"
40+
],
41+
"title": "Find route in mobile map package"
42+
}

0 commit comments

Comments
 (0)