Export tiles from an online vector tile service.
Use case
Field workers with limited network connectivity can use exported vector tiles as a basemap for use while offline.
How to use the sample
When the vector tiled layer loads, zoom in to the extent you want to export. The red box shows the extent that will be exported. Tap the "Export vector tiles" button to start exporting the vector tiles. An error will show if the extent is larger than the maximum limit allowed. When finished, a new map view will show the exported result.
How it works
- Create an
ArcGISVectorTiledLayer
, from the map's base layers. - Create an
ExportVectorTilesTask
using the vector tiled layer's URL. - Create default
ExportVectorTilesParameters
from the task, specifying extent and maximum scale. - Create an
ExportVectorTilesJob
from the task using the parameters, specifying a vector tile cache path, and an item resource path. The resource path is required if you want to export the tiles with the style. - Start the job, and once it completes successfully, get the resulting
ExportVectorTilesResult
. - Get the
VectorTileCache
andItemResourceCache
from the result to create anArcGISVectorTiledLayer
that can be displayed to the map view.
Relevant API
- ArcGISVectorTiledLayer
- ExportVectorTilesJob
- ExportVectorTilesParameters
- ExportVectorTilesResult
- ExportVectorTilesTask
- ItemResourceCache
- VectorTileCache
Additional information
Vector tiles have high drawing performance and smaller file size compared to regular tiled layers, due to consisting solely of points, lines, and polygons. However, in ArcGIS Runtime SDK they cannot be displayed in scenes. Visit ArcGIS for Developers to learn more about the characteristics of ArcGIS vector tiled layers.
Tags
cache, download, offline, vector
Sample Code
<UserControl x:Class="ArcGISRuntime.WinUI.Samples.ExportVectorTiles.ExportVectorTiles"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:esriUI="using:Esri.ArcGISRuntime.UI.Controls">
<Grid>
<esriUI:MapView x:Name="MyMapView" ViewpointChanged="MyMapView_ViewpointChanged" />
<Border Style="{StaticResource BorderStyle}">
<StackPanel>
<Button x:Name="MyExportButton"
Width="330"
HorizontalAlignment="Center"
Click="MyExportButton_Click"
Content="Export vector tiles"
IsEnabled="False" />
<Grid>
<ProgressBar x:Name="MyProgressBar"
Width="330"
MinHeight="20"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Background="Transparent"
Maximum="100"
Minimum="0"
Visibility="Collapsed" />
<TextBlock x:Name="MyProgressBarLabel"
Margin="0,10,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Visibility="Collapsed" />
</Grid>
<esriUI:MapView x:Name="MyPreviewMapView"
Width="330"
Height="280"
Visibility="Collapsed" />
<Button x:Name="MyCancelJobButton"
Width="330"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Click="MyCancelJobButton_Click"
Content="Cancel"
Visibility="Collapsed" />
<Button x:Name="MyClosePreviewButton"
Width="330"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Click="MyClosePreviewButton_Click"
Content="Close Preview"
Visibility="Collapsed" />
</StackPanel>
</Border>
</Grid>
</UserControl>