Vector tiles contain vector representations of data across a range of scales. Unlike raster tiles, they adapt to the resolution of their display device and can be restyled for multiple uses. You can share vector tile layers or share vector tile packages to your ArcGIS Online or ArcGIS Enterprise portal. Sharing a vector tile package automatically creates a corresponding vector tile layer in your portal.
Vector tile layers can also be added to maps and scenes. In scenes, they can only be included in the 2D Layers category as a draped layer. You can reference either a vector tile layer or a vector tile package (.vtpk file).
Make a map for vector tile creation
Vector tiles can be created from any map or basemap in ArcGIS Pro, but there are some limitations and special considerations. The primary concern in making a map for vector tile creation is to build a valid and efficient map so that the resulting tiles draw quickly. Follow the strategies outlined below to make sure your map is a good candidate for vector tiles. For detailed steps, see Author a multiscale map.
Make a valid map
Vector tiles can only be created from maps and basemaps; they cannot be created from scenes. Maps used to create vector tiles typically use map scales that match the tiling scheme scales in the map scale list. The map cannot use a reference scale.
Vector tiles can be created only from point, line, polygon, or multipoint feature layers. These layers can be in group layers or subtype group layers. If your map includes other layers, turn them off in the Contents pane or remove them from the map altogether. Ensure that the map's metadata has been defined. The Description field must be specified at a minimum.
Symbolize your map
The way features are symbolized in your map matters for vector tile creation. Symbols in the map are translated into the tiles according to version 8 of the Mapbox GL style specification. Only layers symbolized with single symbol, unique value, graduated colors, graduated symbols, or unclassed colors are supported. Resymbolize, turn off (in the Contents pane), or remove any layers that are not displayed this way. Certain rendering modes for point symbols are not supported in vector tiles, including unclassed colors, attribute-driven colors, and attribute-driven outline widths.
Avoid complex symbols and symbol effects. Each layer within a symbol is stylized separately, so complex symbology can dramatically increase the amount of information that must be drawn as well as stored within the tiles and style. Do not draw features with symbols that contain hatched or gradient fills, markers along lines or polygon outlines, or most symbol effects. These will not be rendered properly in the resulting tiles. Stroke symbol layers with complex dash patterns will be resolved to on-off dashes in the output tiles. Offset effects on stroke symbols will be honored, but the offset strokes will appear simplified (for performance reasons) and will always be rendered using the Miter method. The Move symbol effect is an exception. It will be rendered properly as a simple linear translate. You may want to use the Move symbol effect to simulate a cast shadow on buildings.
Using circle shape markers in place of more complex point symbols may improve the appearance of point layer symbology in vector tiles. Point layers symbolized with circle shape markers are stored as circle layers in the vector tile style. Circle layers do not require a sprite to render and support symbology that is not supported by sprite icons, such as colors assigned from attribute values. Circle layers also avoid the pixelation and blurring that can occur with sprite icons when the size is attribute driven. Symbols that are composed of font glyphs, that have been imported from SVG files, or that have more than one symbol layer are always stored as sprites instead of circle layers, even if they appear circular. You must use the circle shape from the Insert shape from Form menu in the symbol's shape marker symbol layer properties to ensure that the symbol is stored as a circle layer in vector tiles.
To learn more, see Symbology in vector tiles.
Caution:
Make sure you've obtained appropriate licensing permission for any fonts appearing in your map to be used in services before generating vector tiles. Although the fonts are not actually embedded in the tiles (raster representations are generated from them), font licenses may specify different terms for web, mobile, and desktop use.
Make an efficient map
Extraneous or duplicated data and excessive detail will prevent you from generating useful vector tiles. An efficient map is built to ensure that only the necessary data is included at each scale, and that feature and vertex density is appropriate. There are a few strategies you can follow to achieve this.
Ensure clean data
Your first concern for making an efficient map is to ensure you're working with clean data. Review your data sources for excessive feature detail, excessive feature density, and duplicate features. You can remove unnecessary features from display by setting a definition query on layers, but if there is data that is irrelevant for the map you're making, it is recommended that you make a new feature class with those features excluded.
First, detect and repair geometry errors with the Check Geometry and Repair Geometry tools. For more information, see Checking and repairing geometries. You may also want to use topology to validate the data. To learn about using topology, see Map topology.
Reduce data density by limiting visible scale ranges
At progressively smaller scales, you get a wider scope of your data, but there is less room to show detail. Too many feature vertices in a map at smaller scales can result in tiles that don't draw quickly, or worse, prevent tiles from being created in the first place. This is especially true for point features. Some conservative simplification takes place on line and polygon outline features to reduce vertices during tile creation, but the density and arrangement of points are not altered. Ensure that you are drawing dense point feature layers only at the larger scales where they are discernable and understood. Drop these layers out of display as you move into smaller scales.
You can manage this is by setting a visible scale range on those layers that cannot be displayed appropriately across the full scale range of your intended vector tile package. You can even refine this limitation by adjusting the visible scale range of individual symbol classes within a layer. For specific strategies to minimize data duplication and limit scale range visibility, see Author a multiscale map.
Caution:
Feature binning is another way to reduce data density, but the bin polygons are not included if vector tiles are created for a map with binned feature layers. Only the point features draw in the resulting vector tiles.
Reduce data density with generalization
Beyond removing some features from view at certain scales, you can limit the amount of data (both visual detail and file size) with generalization processes. Generalization is a broad term used to cover alterations to data to make it more appropriate for display at smaller scales. These processes can include eliminating feature detail or actual features that meet some criteria, simplifying feature detail, and aggregating features to make larger representative features.
Some generalization occurs automatically to your data when you generate vector tiles to ensure that tile sizes are manageable. These are conservative processes, and if your map is constructed properly (following the guidelines in this topic and those covered in the Author a multiscale map topic), these changes will not be visually noticeable in most cases. If you want more control over how features are generalized at smaller scales in your map, run one or more of the following geoprocessing tools to make different feature layers for different scale ranges in your map before creating vector tiles. Understand that line and polygon outline features will undergo some dissolving and simplification during the vector tile creation process—based on symbolization and scale (level of detail)—regardless of any prior processing done with these tools.
There are also additional generalization geoprocessing tools in ArcMap that you can run on your data before including it in your map in ArcGIS Pro.
Retain relevant attribution by highlighting fields
To keep the resulting tiles as small and efficient as possible, only those fields necessary to draw the features are passed into the vector tiles when they're created from a map. In some cases, extra fields are derived to help with quick rendering. For example, layers drawn with graduated colors or graduated symbols symbology will include new fields of integer values corresponding to the class break values.
Since vector tiles can be customized by editing their associated style file, there may be instances when you bring other fields into the vector tiles to support this customization. For example, you can use a different field that contains place-name label strings in different (local) languages and access them in the style file.
Tip:
Highlight the ObjectID field to add feature-level identity to the vector tiles and allow for pop-ups to be viewed from the tiles themselves. When you view vector tiled layers, you can also enable pop-ups using an associated web feature layer. Be aware that this can make the tile size significantly larger. Do not highlight fields that won't be needed for drawing.
To bring specific fields into the vector tiles you must highlight them in the Fields view of the layer. To do this, follow these steps:
- In the Contents pane of the map, select the feature layer.
- On the ribbon, on the layer's Data tab, in the Data Design group, click Fields to open the Fields view of the layer.
- In the Fields design view, check cells in the Highlight column to highlight appropriate fields to add to the vector tile layer.
If the highlighted fields either have coded-value domains or subtypes, the attributes for these fields will be stored as numeric values. However, you can also store the subtype or domain descriptions as string values. These string descriptions could allow for more flexible ways to stye the vector tiles. To transfer the field domain descriptions as string values, use the Transfer field domain descriptions geoprocessing environment variable when you create the vector tiles.
Create vector tiles
Once your map is complete, you're ready to create vector tiles. To do this, you share the map as web layer.
- Highlight the map in the Contents pane.
- On the Share tab, in the Share As group, click the Web Layer menu and click Publish Web Layer .
- In the Share As Web Layer pane, on the General tab, under the Layer Type heading, choose Vector Tiles.
- Specify the details of the vector tiles from the Configuration and Content tabs. See the discussion below for guidance.
Alternatively, you can use the Create Vector Tile Package tool. This tool will generate a complete vector tile package, a .vtpk file, from a map or a basemap. You can then share and use the vector tiles in ArcGIS Online or ArcGIS Enterprise.
Whether you make vector tiles by publishing a web layer or using the geoprocessing tool, there are a few decisions you must make prior to creation.
Follow a tiling scheme
When vector tiles are generated from your map, a contiguous mesh of square tiles are created for each scale defined by the tiling scheme. This scheme must double in progression through scales (also known as a power-of-two progression), have a size of 512 by 512 pixels, and overlap the data sufficiently for features to draw. Due to the tile size requirement for vector tiles, the root tile representing the largest area of the map and the lowest level of detail starts at LOD1 (level of detail 1) from the ArcGIS Online tiling scheme, for example. For more information, refer to the technical article FAQ: What is a root tile and how are they used to make a vector tile package with a local coordinate system?
Choose a tiling format
There are two ways that the generation of these tiles can be managed. A regular, continuous mesh of tiles can be generated at each scale level without regard to the density of the features contained within each tile. This type of mesh is produced when the Tiling Format is set to Flat.
A more optimized approach that minimizes the size of the tiles is to create and persist index polygons. In this case, the tiles are created following logic to recognize when the feature density is low enough to overzoom content to larger-scale tiles. If a tile with minimal feature detail can also be reused and redrawn at larger scales, saving processing and storage, then the smaller tiles (for larger scales) do not need to be created, stored, requested, or drawn. For example, a large tile from a small scale in the scale range may show only an ocean polygon. With such minimal feature detail, this tile can easily be used at larger scales, eliminating the need to produce smaller and smaller nearly empty tiles for those larger scales. This optimized approach to tiling is used when the Tiling Format is set to Indexed, and it is also the default.
Use index polygons
When you use the optimized, indexed tiling format, you can specify a premade set of index polygons for the tiling. It is recommended that you make this set of polygons by creating it with the Create Vector Tile Index tool.
Run this tool first on the same map that you'll use to create vector tiles. Then, use the output polygon feature class as Index Polygons. In the Create Vector Tile Package tool, this is an optional parameter, so if you leave it blank while using an indexed tiling format, an optimized set of index polygons is dynamically created during processing. The index polygons will be discarded after the tool completes.
If you are going to process the same map more than once, or you are planning ahead for updates in the future, it is a good idea to generate a persisted set of index polygons with the Create Vector Tile Index tool. Not only will using existing index polygons make the tile generation process faster, it will also ensure that the tiles created will be sized appropriately to draw quickly. Also, drawing these index polygons independently can be a good way to analyze the feature density of your data before creating tiles.
Choose the scale range of the tiles
You can limit the scale range of the vector tiles that are created in the package by specifying scales for the Minimum Cached Scale and Maximum Cached Scale parameters. The scales you choose must be scales defined within the tiling scheme. These scales are translated into minzoom and maxzoom values, respectively. For example, creating vector tiles for levels of detail 0 through 6 will store minzoom = 0 and maxzoom = 6 for the vector tiles.
Vector tiles download quickly, look crisp on high-resolution displays, and the text on them rotates with the map. The styling of vector tiles can be customized, and they can be updated after creation. You can share your content in an efficient way if you limit extraneous features and details in the multiscale map prior to creating vector tiles.