Best Practices for Offline Maps
In an increasingly connected world, users expect a seamless GIS experience - even when they’re offline. Whether they’re working in the office or navigating remote areas, it’s crucial for your application to function smoothly, regardless of connectivity.
In today’s blog post, we’ll explore several strategies to enhance your offline GIS applications, along with the pros and cons of each approach:
Local Data - Deploying your own datasets with the application.
Offline Basemaps - Making your street and satellite basemaps available offline.
Caching - Storing map tiles locally when users are online for use when they’re offline.
Custom Offline DataSource - Leveraging ThinkGeo’s flexible extensibility model to create a custom datasource that functions reliably in any environment.
Local Data
When building an offline-capable GIS application, having your data local is always the best option. Whether you're working with Shapefiles, GeoTIFFs, TAB files, CAD, GeoJSON, MBTiles, SQLite, ECW, PostGis or any other supported data formats, keeping these files stored locally ensures your app will function consistently, regardless of connectivity.
While it’s always ideal to have your GIS data local, it’s not always an option. Often times, datasets are too large for the device you are deploying to, or in other scenarios your datasets are only available via an online service. We’ll explore other options below.
Offline Basemaps
A lot of people think that street and satellite basemaps are only available using online services. While it’s often quickest to add basemaps to your application using online services like ThinkGeo Cloud, Google Maps, or MapTiler, there are better options when you expect your clients to have intermittent internet connectivity.
In this scenario, we recommend ThinkGeo’s own Maps Street and Maps Imagery. Using these datasets, you can easily add offline street and satellite basemaps using the ThinkGeoMbTilesLayer. More details can be found here.
Tip
If you are targeting devices with limited local storage, you can use our Maps Street Viewer & Extractor to easily export a subset of the data to package with your application.
You can view an online version of our maps street and maps imagery datasets here to make sure they meet your needs.
If you already have 3rd party MbTile data from a provider such as MapTiler, we have you covered. Both raster or vector .mbtiles can be rendered in any ThinkGeo component using the MbTilesLayer and MbTilesRasterLayer classes. Check out this post to learn more.
Caching
While local data and offline basemaps are always the best option, there are times when your data may only be available through an online web service. In this scenario, caching may be a good fit. GIS tile caching is a technique that stores and displays previously rendered map images to improve map rendering speed in subsequent requests or when offline.
All ThinkGeo components support tile caching at the Overlay level. Every class that inherits from TileOverlay has a TileCache property of type RasterTileCache.
You can also check out our Cache Generator Utility to learn how to pre-generate a tile cache for a predefined geographic area.
To learn more about tile caching and the Cache Generator Utility, check out this blog post and view the video to the right.
Custom Offline DataSource
When you have unique data requirements and none of the techniques mentioned above will suit your scenario, ThinkGeo also has an extensible architecture that will allow you to easily create your own custom data source. From custom JSON feeds to non-standard GIS services, there are no limits to the types of data you can add to your map.
You can check out our Extensibility Guide for more information on extending FeatureSources, Styles or Layers. You can also add caching to any of your custom classes by inheriting from the TileOverlay class and adding your own custom implementation of the TileCache. If you have questions on this approach after reading the Extensibility Guide, just contact support@thinkgeo.com and one of our developers will be able to point you in the right direction.
Summary
We hope today’s post has been helpful. If you have any questions or need more information on making your maps accessible offline, please email sales@thinkgeo.com or schedule a meeting to talk in person.
About ThinkGeo
We are a GIS software company founded in 2004 and located in Frisco, TX. Our clients are in more than 40 industries including agriculture, energy, transportation, government, engineering, IT, and defense. We pride ourselves on our excellent service and transparency. ThinkGeo offers a variety of products and services to meet almost any GIS application need. We can even help you develop your next project - anywhere from a few hours of consulting to outsourcing an entire project. To learn more, email us at sales@thinkgeo.com, or call us direct at 1-214-449-0330.