Mapbox API Consumption Soars as Developers Demand More

Editor's Note: This is the first of many profiles to come of what ProgrammableWeb is calling it's "Growth Series." One objective of this series is to profile API providers that are driving growth in 3rd-party consumption of their APIs so that other API providers can learn about what works and what doesn't from real world practitioners. If you're an API provider that's interested in being profiled by ProgrammableWeb for this series, please contact us at editor@programmableweb.com.

There's more to modern mapping APIs than providing the ability for developers to render a street view of a location on a web page. Being able to view a location anywhere on the planet, while astounding years ago, is commonplace today. While many developers new to mapping start off with the industry behemoth Google Maps, developers experienced in working within the complexities of the geospatial domain have needs far beyond that which Google offers.. Advanced developers want to store custom data and take a multi layered approach to map construction, one in which satellite and terrain data can be layered over a developer's data seamlessly. Just switching between street view and satellite view won't suffice.

MAPBOX API IN A NUTSHELL
Growth in 3rd Party API calls: 11x over 2 Years
Developers: 830,000
Time to Hello World With SDKs: 5 minutes

When we last checked, over 960 mapping APIs were listed in ProgrammableWeb's API directory. One those is the MapBox API, the subject of this ProgrammableWeb Growth Series profile. In as much as developers want more, well beyond the single layer, single data dimension approach to mapping typical in the Google API, Mapbox claims it is a company that provides the "more" they desire. According to developer, Ryan Baumann:

"[I made this map to] show how something like this is really easy in Mapbox and really hard or impossible in [Google] maps."

The map Ryan created displays detailed information about pedestrian and bicyclist traffic incidents throughout the streets of New York City, as shown in Figure 1:

Figure 1: Mapbox provides an API that allow developer to implement visual data drill down easily

Figure 1: Mapbox provides an API that allow developer to implement visual data drill down easily

Providing an API that allows developers to create maps with rich data visualizations by using multiple data layers is but one of the many features that have fueled the company's dramatic rise as a significant player in mapping technology. More developers are taking notice. Over the last two years the company has experienced 11x growth in the number of calls that 3rd party developers make to its API. The reason for this growth? To quote, CTO Young Hahn,

"The consistent pattern in our growth is that as the breadth of our services broadens, usage of our API increases."

A Growing Company with Deep Humanitarian Roots

Mapbox is an offshoot of Development Seed, a non-profit company that builds tools and platforms to do humanitarian projects such as the monitoring of election data throughout the world and analyzing health and economic data. Development Seed is sponsored by organizations such The World Bank, United Nations, and Red Cross.

Mapbox was established in 2010 to take advantage of the for-profit business opportunities that appeared in the digital mapping landscape. The company employs 260 people in offices located in San Francisco, Washington, D.C., Ayacucho, Peru, Bangalore, India, and Berlin, Germany. Mapbox boasts a customer list that includes , IBM, The Weather Channel, Financial Times and USA Today.

The company has become a major player in digital mapping technology and increasing use of its API is a key reason why.

A Powerful API Delivers What Developers Want

The Mapbox API offers more than the capability to render static maps. The platform is organized in data layers that developers access on an as needed basis. Fine grain data access provides the flexibility for developers to create distinct, custom applications that meet the specific needs of their market. For example, game developers can use the Mapbox API to retrieve and apply geolocation, routing options and language localization data to customize Augmented Reality environments in order to create compelling interactive visual experiences that are distinct to the application.

In addition developers can combine mixed and matched data extracted from across the Mapbox API with their own data layers, as shown in Figure 2, below.

Figure 2: The Mapbox data layering feature allows custom data to be positioned over a custom styled map

Figure 2: The Mapbox data layering feature allows custom data to be positioned over a custom styled map

For example, the Mapbox API DataSet feature allows developers to store and retrieve custom data special to a developer's application. Imagine a fleet management application using the DataSet feature to store a list of vehicles ids to a given route. The vehicle-routing information is thus available in Mapbox as a single, secure repository of data special to the application. This custom vehicle-routing data layer can be used for optimization analysis later on.

Allowing developers to leverage the power of the Mapbox API and integrate Mapbox data with their own is a key driver for growth in the adoption of the API. To quote CTO Hahn,

"People are coming to us with all the pieces they need. Our job is to help them integrate their data seamlessly with Mapbox's capabilities."

Rich Client Side SDKs Increase Developer Use

Mapbox understands that a good way to increase adoption of its API is to make is as easy as possible for developers to use it. Thus, part of Mapbox's strategy to spur growth among developers is to publish a rich set of client side SDKs in formats that allow web-based and native mobile applications to access the Mapbox API seamlessly. Mapbox publishes Java based SDKs for Android and Unity as well as iOS SDKs in Objective-C and Swift 3. In addition, the API supports endpoint access via curl and standard JavaScript based HTTP calls.

Similar to a common success factor called "Time to Hello World" that other API providers measure, the company's stated objective is to get developers up and running with an SDK in 5 minutes or less. The way that the SDKs facilitate fast adoption is to encapsulate the details of HTTP calls to API endpoints into native language objects. In other words, when using a native language SDK a developer don't have to spend a lot of time twiddling text to configure an HTTP call to the API endpoint. Rather, the developer has to do nothing more than add set values to parameters and properties on a Mapbox object and let the SDK do the rest.

Listing 1, below shows the curl command for making a GET call to the Mapbox API endpoint that returns a static map tile.

curl https://api.mapbox.com/styles/v1/mapbox/streets-v10/static/-122.4241,37.78,14.25,45,60/600x600?access_token=your-access-token

Listing 1: Accessing a static map tile via curl

Listing 2 shows a call to the same endpoint in Java using the Android SDK. Notice that the physical endpoint is hidden from the programmer and encapsulated in the MapboxStaticImage object.

MapboxStaticImage staticImage = new MapboxStaticImage.Builder()
  .setAccessToken("your-access-token")
  .setUsername(Constants.MAPBOX_USER)
  .setStyleId(Constants.MAPBOX_STYLE_STREETS)
  .setLon(-122.4241).setLat(37.78) // Image center position
  .setZoom(14.25)
  .setBearing(45).setPitch(60) // Image camera parameters
  .setWidth(600).setHeight(600) // Image size
  .setRetina(true) // Retina 2x image will be returned
  .build();

Listing 2: Accessing a static map from the Mapbox API using the Android SDK

Listing 3 shows the call implemented in Swift-3 by way of the iOS SDK. Notice that the iOS SDK takes the same approach as the Android SDK does to encapsulating access to an Mapbox API endpoint. The difference with the iOS SDK is that API access is encapsulated in the Snapshot object.

import MapboxStatic

let camera = SnapshotCamera(
    lookingAtCenter: CLLocationCoordinate2D(latitude: 37.78, longitude: -122.4241),
    zoomLevel: 14.25)
camera.pitch = 60
Camera.bearing = 45
let options = SnapshotOptions(
  styleURL: styleURL,
  camera: camera,
  // Dimensions are measured in resolution-independent points.
  size: CGSize(width: 600, height: 600))

// If Snapshot conflicts with another class in your module, use `MapboxStatic.Snapshot`.
let snapshot = Snapshot(
  options: options,
  accessToken: "<#your access token#>")

// Retrieve the image synchronously, blocking the calling thread.
// `image` is a `UIImage` on iOS, watchOS, and tvOS and an `NSImage` on macOS.
imageView.image = snapshot.image

// Alternatively, pass a completion handler to run asynchronously on the main thread.
snapshot.image { (image, error) in
    imageView.image = image
}

Listing 3: The Swift 3 code for accessing a static map from the Mapbox API using the iOS SDK

Providing an easy to use SDK has been a critical tactic for promoting the use of the Mapbox API among developers. The tactic is proving successful. The developer community it taking about Mapbox in more ways than one.

A Broad Set of Services Promoted by Word of Mouth

Mapbox has an enthusiastic and creative community of developers and designers now measuring over 830,000 strong. The team members and independent developer community are prolific in their blogging, the results of which are compelling use case blog entries that have caught the attention of mainstream publications such as Wired, FastCompany and interestingly enough, Car and Driver magazine.

As we stated earlier, the company had the vision to anticipate that the modern mapping would be more than rendering pictures of streets and roadways. It has formed an alliance with IBM that allows Watson to use Mapbox's street address location data. Providing information at the street address level allows Watson to perform more granular analysis in the geospatial domain.

The acquisition of Human, a fitness device company, will allow Mapbox to integrate health-wellness information with geospatial data. The implications for route recommendations alone is noteworthy. Imagine being able to provide direction recommendations from Point A to Point B according to calorie burn when walking or biking? These sort of possibilities are already causing buzz among developers and data scientists. The more buzz, the more API consumption.

Mapbox will continue to forge alliances, partnerships and acquisitions that will the company and independent developers to create new located-based experiences. To quote CTO Hahn:

"As people have new location-based experiences built on Mapbox, the more momentum comes our way."

No doubt, history is showing that the Mapbox API is on the fast track to becoming the service to use for location-based application integrators. The real test moving forward having the foresight to identify challenges on the horizon and then have plans in place to address them.

More Data Coming In, More Data Going Out

One of the biggest challenges that Mapbox plans to meet is to be able to accommodate an enormous increase in the amount of data the platform will need to support.

Presently the company collects over 250 million miles of anonymized road data every single day and that number is growing. Also, Mapbox is continuously integrating data from other sources including satellite images, health and wellness devices, and the enormous amount of custom data provided by individuals and organizations. Meeting short term scaling needs will be challenging in itself. Add in that the company anticipates an explosion of data due to the growth of the Internet of Things (IoT). IoT will create a unique set of challenges and there are likely a whole new set of unknown challenges on the horizon. For example, drones fly. Thus, determining the location of an autonomous flying object and providing routing recommendation information to that object maneuvering in three dimensional space creates a whole new aspect of data management. One piece of incorrect data and the drone ends up in some unsuspecting person's living room, and that's a benign case! The issues at hand are not lost on the company.

Mapbox was build from the ground up to scale. According to CTO Hahn:

"Our infrastructure runs on AWS using systems we've built for managing data processing and running infrastructure in reliable and scalable ways."

The company has a lot of experience in the Big Data space. It is still active working in large scale, humanitarian projects. The projects include data that reflects the activities of millions of people and thousands of places throughout the globe. Also, the data generation and consumption habits of those on its customer list are profound. Mapbox's underlying infrastructure has supported a significant trajectory of growth to date. The company has the scaling architecture in place to support the expected growth to come. Any shortcoming in the company's ability to scale would have appeared years ago. The company continues to thrive.

Putting It All Together

Columbus was lucky. The maps of his day provided no indication of North America. His navigation technology couldn't determine a ship's location on the globe with any reliable accuracy. That Columbus managed to arrive on a little island off the coast of present day Cuba using nothing more than dead reckoning was a fortunate roll of the dice. Columbus really had no idea where he was or where he was going. For Columbus, location was just a fuzzy ball of assumption.

Today, we take knowing exactly where we are in time and space for granted. Location permeates every aspect of our life. Without location and the maps that describe location, we'd be lost, literally and figuratively. Understanding the importance of location and anticipating the need for more services that expand the use of location in new, creative ways is essential to Mapbox's mission. Again, to quote Mapbox's Young Hahn,

"Location is woven into the fabric of all applications and services. We believe the need for this core 'ingredient', coupled with our unique approach, will bring more developers and partners in our direction. We're already seeing many developers making the switch to Mapbox as we enable them to move from maps and location as simple images to enabling the creation of new, revenue-generating experiences for their end customers. We are seeing inroads in data visualization, BI, transportation, automotive, mobile, AR/VR, gaming and more."

Mapbox's growth didn't happen by magic. The company publishes a API that provides a broad set of services that allow developers to create applications that are as special as the needs they are trying to meet. And, they are doing it in such a way that is creating buzz.

Developers talk. They always have; they always will, particularly about technologies they love and technologies they hate. Mapbox realized a long time ago that the best way to get developers to fall in love with a product is to provide them with the comprehensive data and easy to use tools they need to dazzle their customers. The company achieved its goal. It combined a world class API with a set of native client SDKs that allows developers to get up and running quickly. Mix in a high profile development community with the likes of IBM, SnapChat as well as The Weather Channel and word spreads. Success breeds success. In Mapbox's case the success translates into a 11x growth in the use of its API by third party developers. That's something worth talking about.

Bob Reselman Bob Reselman is a nationally known software developer, system architect and technical writer/journalist. Over a career that spans 30 years, Bob has worked for companies such as Gateway, Cap Gemini, The Los Angeles Weekly, Edmunds.com and the Academy of Recording Arts and Sciences, to name a few. Bob has written 4 books on computer programming and dozens of articles about topics related to software development technologies and techniques as well as the culture of software development.
 

Comments