Image
BLOG

Dissecting the Layers of Mapping APIs

The world of geospatial software development offers a wide menu of application programming interfaces (APIs) to support myriad mapping needs. Some are well-recognized and solve common problems across a multitude of industries, like Google Maps. Others, like OpenLayers, are less popular with the masses but have been a mainstay of GIS web developers for years. This blog will help demystify the collection of mapping APIs and help you pick the right one for your next project.

A good starting point is to ask yourself, “Do I have the geospatial content and systems intelligence necessary to solve my mapping problem or will I rely on an API to provide these?”

If you are looking for driving directions between two points in any given country, you most likely will need the API to provide content—data and serving infrastructure—and systems intelligence. On the other hand, if you are standing up a website with a map of your underground utilities, you may have the content and only need a frontend API to present it to your end user.

Backend APIs

Backend APIs provide content and intelligent systems services. Content providers offer base maps with common themes like streets, terrain and satellite imagery in 2D or 3D. Intelligent systems services provide answers to geospatial problems like driving directions or geofence-based alerts.

Google Maps Platform is considered the global geospatial content leader. The platform provides base maps, Street View panoramas and a comprehensive POI database with an advertised 25 million updates daily. Its Maps API advertises 99% global coverage, and Places API advertises 150 million places. All Google Maps Platform services are read-only, meaning you cannot upload your own content, and are pay-per-use with a recurring $200 free monthly credit.

Microsoft’s Bing Maps Platform offers a robust catalog of content and location intelligence services. In addition to standard base map, geocoding and routing services, Bing’s Logistics and Fleet Management services can route commercial vehicles, calculate isochrones (equal drive-time polygons), alert on geofence crossings and perform multi-itinerary optimization. Bing’s Spatial Data Services offer bulk operation APIs and the ability to host your own data.

ArcGIS Online (AGOL) is a complete SaaS solution intended to complement or replace your on-premises enterprise GIS solution. It caters to the GIS-savvy practitioner who is looking to host and share his or her own content or develop and serve a proprietary geoprocessing routine. Although AGOL provides comprehensive GIS in the cloud, it also offers a wide variety of backend APIs that serve both content and geospatial intelligence. AGOL’s base maps are free to use and come in both raster and vector tile formats, and its GeoEnrichment service allows you to embellish your data with location-based demographics and provide your end users with new insights.

Mapbox, author of the vector tile specification, offers a SaaS solution for hosting your data and creating beautiful, stylized maps. To support your application-specific maps, Mapbox hosts a set of handsome base maps that are delivered as vector tiles. Beyond maps, Mapbox provides in-vehicle navigation services, Geocoding/Search and Vision APIs. Its content services, Data Products, give you easy access to boundaries, traffic data and “movement” data, providing more than 20 billion location updates daily on a variety of themes.

Here Technologies specializes in the automotive industry and offers a rich line of in-vehicle application services. It demonstrates its depth in the auto industry with a full array of fleet telematics and transit services, meant to solve complex transportation and logistics problems. 

OpenStreetMap (OSM) is the most popular open source map of the world. OSM receives map updates from a global community of contributors and relies on a crowd-sourcing model to keep its content fresh. OSM offers base maps for download and web service APIs in both raster and vector tile formats. The base map APIs are provided by many third-party organizations.

Others to check out include Carto and UP42.

Frontend, Traditional and Big Data APIs

Frontend APIs, or client-side APIs, come in all shapes and sizes for web and mobile applications. These are software libraries, often packaged as software development kits (SDKs), that present an API with which the developer can interact. The classes and methods may contain logic executed within your browser’s JavaScript engine or may reach out to remote backend APIs. Usually they do both. Base maps provided by backend content providers are typically consumed by frontend APIs in an OGC format (WMTS, WMS) or as raster or vector tiles. You will find a more mature set of APIs for web applications, but there are mobile SDKs as well.

Traditional APIs meet traditional web mapping needs for small- to medium-size data volumes. They include:

Google Maps Platform includes SDKs for web development with its JavaScript API as well as mobile SDKs for Android and iOS. The JavaScript API service classes interact with the backend services. Map loads on both mobile platforms are 100% free.

Bing Maps Platform web mapping control supports JavaScript and Typescript and the Maps SDK for Android and iOS have your mobile app needs covered.

ArcGIS API for Javascript and Native SDKs from Esri simplify your interaction with the AGOL platform. Once you assemble your web map in AGOL or Portal for ArcGIS, consume it in your client code with a few lines of code. Beyond simple mapping, you can invoke AGOL backend APIs to perform geospatial queries and execute long-running geoprocessing algorithms that solve very complex spatial problems.

OpenLayers are popular open-source JavaScript APIs found in mapping websites across all industries. They are free to use and easy to get started.

Leaflet is a lightweight JavaScript API with a bent toward “less is more” and being mobile friendly.

The need to scale beyond traditional data volumes led to the development of big data APIs. They leverage WebGL, a library available in all modern browsers that can take advantage of hardware graphics acceleration to boost performance and expand what’s possible to render in the browser. Some big data APIs include:

CesiumJS is an open source library specializing in high-performance 3D globes and maps.

Mapbox GL JS is part of the Mapbox ecosystem and is the de facto standard for rendering Mapbox maps in a web application but is also built to handle big data volumes.

Deck.gl is an Uber open source project that can utilize Mapbox maps. It allows you to visualize large-scale geospatial datasets for exploratory purposes.

Kepler.gl, courtesy of Uber, combines Mapbox GL with deck.gl and can render millions of points and perform spatial aggregations on the fly.

Final Considerations

Beyond the differences in features across the suite of APIs, make sure you consider:

Cost: With the exception of OSM, all backend APIs are paid services. The pricing models and free allotment vary. Be sure to fully understand costs before embarking. Frontend APIs are generally free to use.

Language support: Web mapping APIs all support JavaScript and some also support TypeScript. Others provide UI components for frontend frameworks like React. Esri provides ArcGIS Runtime native SDKs for .NET, Java and Qt.

Terms of service: Look out for restrictions on what you can do with content. The terms of most providers forbid caching any data or limit the types of data you may cache, subject to a refresh term—30 days, for example.

Also be aware that new technologies are being developed every day in support of APIs and mapping infrastructure. For example, an internal project we called geoaccelerators was created to substitute or replace heavy backend GIS infrastructure at a public or private enterprise for those layers that are particularly tough to manage. We landed on an architecture that serves geospatial data in Mapbox vector tile format from Google Cloud Storage. Our example showcases two of the frontend APIs mentioned above consuming our vector tiles: ArcGIS JavaScript API and OpenLayers (desktop GIS clients, too!)

Image
David Hollema

David Hollema is a software developer with a passion for clean, elegant code. He is currently crafting geospatial solutions on the Google Maps and Google Cloud platforms.