Use ArcGIS Pro to make an offline map - part 1

01-19-2018 04:02 PM
Esri Regular Contributor
13 0 13.1K

Fieldwork takes you and your mobile workers places without a data connection, but that shouldn’t stop you from using your GIS data. You can make a map that doesn’t require the internet, and you can use it on your device in the field. You might be using ArcGIS Field Maps, or perhaps a custom application built with AppStudio for ArcGIS or an ArcGIS Runtime SDK. In this blog, we’ll look how to build a map that can be used offline (without a data connection) in any of those apps. We’ll then look at using that map in Field Maps.


First, let’s see an example of an offline map using ArcGIS Field Maps. If you don’t have the app installed already, start by installing it on your iOS or Android device.  Search for ArcGIS Field Maps in the App or Play store.


Start Explorer and tap Skip Signing In when it launches.






Then search for “Shenandoah National Park” and tap to download the map.






Check out the map to get an idea what is possible: tap features and see information about them, view the map’s layers, measure, or draw markup on the map. If you are new to Field Maps, take a look at Get started and try some of the things called out there using this offline map.


Now we’ll use ArcGIS Pro 2..x (ArcGIS Pro 2.1 - 2.9) and build an offline map like the Shenandoah National Park map. Behind the scenes, an offline map is a Mobile Map Package (MMPK). As you create the MMPK by following this blog, you’ll learn the recommended pattern for creating an offline map (or MMPK) like the one you just tried in Field Maps.


In this example, we are going to start with a basically finished map.  To do so, we’ll get an ArcGIS Pro project that already has some completed maps in it.


Note: This exercise requires ArcGIS Pro 2.1.

Estimated time to complete - 40 minutes.

Get the Example Project

  1. Start ArcGIS Pro and click Open another Project
  2. Click Portal and then Browse to get a shared project from ArcGIS Online.Click the All Portal filter and search for “Make Offline Map example.” Select it and click OK.

3. The project downloads and opens with three maps (often called views) – Operational, VTPK_Source_BM and Basemap. The Operational map consists of places, points, and areas of interest.  The layers in this map provide searchable and clickable features for your offline map.  You can author the Operational map to allow your map users to search for features by attributes and to tap on features to see pop-ups.



Click on the tab for VTPK_Source_BM to activate the basemap view. It shows the boundaries for Yellowstone and Grand Teton National Parks.  The information in this map provides background reference data for the operational layers.  Layers in the basemap are purely for visualization.  Users of the offline map won’t be able to access attributes through a pop-up or be able to search for features in the basemap.  If there are layers in this map that you want users to interact with, move them to the Operational map.


Note: The source data in both maps comes from The National Map


Click on the Basemap tab to activate the view, and see that it is empty.  We’ll make use of this map later.



4. Activate the Operational map by clicking on its tab, click the Basemap gallery and choose the VTPK_Source_BM basemap



Pan and zoom around the map to familiarize yourself with the basemap and operational data.  This will give you context for how the operational layers work with the basemap layers.




 Note: if you do not see any labels, check an Operational layer off and back on to force a redraw.

Create a Vector Tile Basemap

The best practice for creating an efficient offline map is to use vector tiles in a Vector Tile Package (VTPK) for vector data and a Tile Package (TPK) for raster data.  In this example, we’ll use vector tiles for the basemap.


Note:  Raster file data (imagery) won’t be covered in this example.  A future update to this exercise will use it, but at this time raster file data in an offline map is not supported in apps built on the ArcGIS Runtime SDKs (including Explorer and those built through AppSudio). The teams are working to support raster files in offline maps in coming releases.


You can use Tile Packages (.TPK) in Mobile Map Packages.  You can use the Create Map Tile Package geoprocessing tool to create them.

1. We could create an offline map of all of the content of the map; however, it’s common to create an offline map or multiple offline maps from a portion of an existing map. For example, we may have a project including the entire United States, and we are only interested in making an offline map for a specific city.  With that in mind we’ll make an offline map for a portion of this map.


Zoom to the extent of Grand Teton National Park, this will be the extent of the offline map that we create.


Activate the VTPK_Source_BM basemap. All of the maps in the project are linked by scale and extent, you should see the same extent of Grand Teton National park.  The data in this project is comprised of vector file geodatabase data. We could use this data offline, as is, but the most efficient way to use vector data offline is in the form of vector tiles.  This is especially true for our basemap, which does not need to provide access to attributes or user interaction with features.  Vector tiles provide visualization and do not provide access to feature geometries or attributes.  As mentioned earlier, if map users need access to attributes and geometries, add the layer to the Operational map. (If you look closely at this project you’ll notice that some of the same layers are in both the Operational map and VTPK_Source_BM basemap.  This allows efficient feature visualization while still providing access to feature attributes.)


2. The tools for creating a vector tile package will create vector tiles for the map’s defined extent.  Let’s set the extent of the map to Grand Teton National Park by right-clicking on VTPK_Source_BM in the table of contents and clicking Properties.  Click Extent and set the Custom extent to the Current visible extent and click OK.



When you click the Full Extent button on the ribbon, the map now zooms to the custom extent.  Use this button to confirm that what you are seeing in the view is what you are going to get when creating the Vector Tiles.



Next, we ‘ll use a Geoprocessing tool to create vector tiles for the basemap.


3. Click the Analysis tab and click the Tools button.


This opens the Geoprocessing tools pane.


4. Search for “Vector Tile Package” and open the Create Vector Tile Package tool.


5. Choose VTPK_Source_BM for your input map.



6. In the Output File, specify a name and output location for your Vector Tile Package.



7. Uncheck Package for ArcGIS Online | Bing Maps | Google Maps


The tiling scheme automatically updates to match the coordinate system of the map.


Note:  The tiling scheme shows the coordinate system defined in the Map Properties.  In this case, the coordinate system being used matches the coordinate system of the map and the data.  To use the ArcGIS Online | Bing Maps | Google Maps scheme the map needs to be in the WGS 84 Web Mercator auxiliary sphere coordinate system.


Note: You can change the coordinates system for each map in the project to WGS 84 Web Mercator auxiliary sphere and produce vector tiles in the ArcGIS Online | Bing Maps | Google Maps tiling scheme.  However, drawing performance in ArcGIS Pro will be less efficient, as all of the map’s data is in Geographic Coordinate System North American 1983, and displaying the layer will require more processing as the data is re-projected on the fly.  When possible, always put your map and data in the same coordinate system for the fastest data display.


8. Accept the Default tiling format, which is Indexed.


9. Set the Maximum Cached Scale to 0. Some offline map use cases require zooming in close to the map, and without this setting the vector tiles stop displaying once past the maximum cached scale. By setting this to 0, users can zoom in as close as they want and still see vector tile information.



10. The tool will use a default index, so Index Polygons are not needed. The Summary and Tags are also optional and not necessary to fill in.


11. Before running the tool, right-click on the VTPK_Source_BM map in the Contents pane and click Properties.



Click Metadata and write a Description for the map.  If the map doesn’t have a description, the Create Vector Tile Package tool will fail to run.

(Yes, this could have been done as part of the example project, but this is an often-experienced road block to success… so good to know!)


Click OK to add the Description.


12. Click Run on the Create Vector Tile Package tool.



Using Vector Tile Package as a basemap

1. When the tool has completed, click the Basemap tab to activate the empty Basemap view.



Click Map Tab and Add Data, browse to the Vector Tile Package that you created, select it, and click OK.





2. Click the Operational Tab to activate the Operational Map view.



In this view, you’ll switch basemaps to use the “Basemap” that you just added the Vector Tile Package to.


3. Choose the Basemap from the Basemap Gallery.



The basemap in your Operational view updates to use the Vector Tile Package you created.



4. Right-click on Basemap in the Contents pane and select Zoom to Layer.





This is the extent of the map that we will be sharing for offline use. 


Enhance Map Usability


Let’s make the map searchable.  There are two ways to provide search functionality for offline map users.  We can enable feature search or create locators to use with the map (or both). One of the key differences is that locators support suggestions as the user is typing, which aren’t supported in feature search. The tradeoff is that locators increase the size of the map.  Feature search doesn’t increase the size of the map, but it doesn’t provide suggestions.


Note: Different apps support different types of search functionality. Both are supported in Explorer. Navigator for ArcGIS only supports locators. It is up to the developer with an AppStudio or Runtime SDK app.


Let’s start by enabling feature search, and then we’ll create a locator.


1. Click Locate on the Ribbon and click Settings on the Locate Pane.



The online locators associated with your Organization are listed.  These won’t be accessible for offline map users in your organization or users you share the map with who are not members of your organization, so you need to include search functionality in the map.


2. Click the “Add Locate Provider” button and click Add Layer



The feature layers in your map will be listed.  Let’s allow users of the map to find mountain peaks.  Highlight the TowerSummitMinesDam layer and click OK.


Note: many of the operational layers in this map reference the same Geonames USA point data.  A layer definition query is being used for cartographic purposes to group varying Geonames Point of Interest types



This shows all Fields in this layer and allow us to choose a search operator for each field that we want to make available for search by users of the map.


3.  Allow map users to search by FEATURE_NAME and use the Contains This will return search results for all features in the TowerSummitMinesDam layer that “contain” the characters typed in by the map user. If you use the “Equals” operator the user will need to match the attribute exactly to find it.



4.  Click the Back Arrow to save and return to settings.



5. The Layer is listed in the Locator list. Uncheck the locators provided by your organization and then click Locate to test the feature search on the TowerSummitMinesDam layer.



6. Search for ‘Grand Te’ and see that Grand Teton is returned in the search results.



If needed, you can enable search for more operational layers in your map and multiple fields in those layers.


7. Another way to provide search capabilities for your Explorer users is to include a locator in the map. You can create locators for feature layers in your map by using the Create Address Locator geoprocessing tool. 



8.  Choose a Locator Style, Gazetteer and Single Field work well for Named features. For this case use the Gazetteer style.



9.  Choose a layer to build the locator from. This feature layer does not need to be in your map. For this example, use the LocalePopPlace feature layer.



10.  Specify the attribute field with the attributes to search for: FEATURE_NAME.



11. Specify an output address locator name or just use the default.



12. Check Enable Suggestions.  As users type their search string into the map, suggestions will be presented (which isn’t supported with feature search).



13. Click Run to create the locator.



In Locate settings you will see that the locator you just created is available for use. 



14. Search for “White Grass” and see “White Grass Ranch” and “White Grass Ranger Station” returned in the results. 


Note: Suggestions are not supported for file-based locators in ArcGIS Pro 2.1, but they are supported in Explorer and Navigator and are available to developers of AppStudio and Runtime SDK apps.





Bookmarks are predefined named extents that you can include in the map.  Bookmarks allow map users to easily zoom to an extent.  Bookmarks that you create for the map in ArcGIS Pro are included in the offline map.


1. To create a bookmark, zoom to a specific extent, click Bookmarks on the ribbon, and click New Bookmark.



2. Name the Bookmark and click OK, to add it to the map.



(... continued in part 2)

About the Author
esri Software Products Engineer | he-him-his