Working with Mapbox Studio

Creating a base style

Start by heading to mapbox.com/studio and creating a new style. Any style that’s close to what you’ll be using in your app is ideal.

Prototyping with data

The goal in using Mapbox Studio for prototyping runtime styling implementations is to test data presentation assumptions as quickly as possible. With the Mapbox Studio tools, you can import a small subset of your own real data, fake data as a placeholder, or prototype with existing Mapbox data.

Prototyping with Mapbox data

The default Mapbox Streets tileset might offer data similar to your own that you can use to style before you swap in your own data at runtime.

For example, if you’re looking to prototype points of interest, consider the poi_label layer; if you want to style GPS traces, the roads layer might be a good proxy. Take a look at what’s available in Mapbox Streets: there’s probably a layer that closely matches your data.

Importing real data

If you can’t find a good approximation for your data in Mapbox Streets, consider uploading a small subset of your data into Mapbox Studio as a custom tileset.

From the Mapbox Studio Dashboard, click Tilesets in the sidebar, then click New Tileset to get started with most common geo file formats including KML, GPX, GeoJSON, Shapefiles, and CSV.

Faking placeholder data

If you don’t have any custom data on hand in a format that works easily with the Tileset importer, you can fake placeholder data with the Dataset Editor.

Zoom into your desired location and use the draw tools on the left to start creating a set of sample data.

Next, add data properties you’d like to use to drive your style. Consider categorical properties or numeric properties that you’d use to filter and group your data. Text properties can be used to display icons or labels.

General Guidelines:

Text along a line: add line with a text property

Text at specific points on a line or polygon: in addition to the line, create points at the specific points you’d like with text properties

If you want circles where scale doesn’t matter relative to the geography (e.g. always 20 pixels), you can add as a point and style with a circle layer or a symbol

If you want circles or arcs where the scale matters (e.g. 10 mile radius), you’ll need to approximately freehand a polygon that you can create more precisely later in code.

When you’re done, save your dataset and export as a tileset. When that’s complete, add your tileset to your style.

Import into your style

Click New Layer

Select your tileset

Select your shape type:

Symbol: best for text and icons

Line: best for lines or adding strokes to polygons

Fill: best for filling polygons

Circle: for styling points or nodes along a line or polygon as circles. If you need circles of a fixed radius (e.g. 1 mile radius), you should model your data as a polygon.

Add filters if necessary

You can selectively filter your data by their properties to group and style separately

Click on Create Layer

Styling with Mapbox Studio

Mapbox Studio shines for styling your data and the process is much faster than attempting to style natively.

There are some nuances to understand between the different layer types and how they work together. Don’t be afraid to use the layers sidebar to peek into the techniques used to style the stock Mapbox maps. You can duplicate these layers, re-point the source to your own data, and tweak as needed.

Best Practices:

Layers are cheap, so duplicate and update filters liberally.

If you’d like to stroke polygons you’ll need to use two layers: one a fill and one a stroked line.

If you want to stroke a line, create two layers, one for the default stroke and one with a wider width for its casing

If you intend to animate properties or transition between values, consider creating separate layers for each state and toggling visibility to visualize the difference.

Translating style attributes from Studio
For each property you’ve edited in Studio, you can hover over the property name to find the corresponding property in the iOS SDK. It’ll generally be the camelCased version of the Property ID, but see “Configuring the map content’s appearance” for a table of properties that differ between Mapbox Studio and the iOS SDK.

Translating stop functions
It’s possible to use stop functions in Mapbox Studio to transition the style of a layer by its zoom level (e.g. a line that gets wider as you zoom in). These can be translated in the mobile SDKs using +[MGLSyleValue valueWithInterpolationBase:stops:]. The rate of change between stops in Studio is represented by interpolationBase.