View in MAUI UWP WPF WinUI View on GitHub
import InlineCode from "@esri-dx/starship-doc-components/components/InlineCode.astro";

Download tiles to a local tile cache file stored on the device.

Image of export tiles

Use case

Field workers with limited network connectivity can use exported tiles as a basemap for use offline.

How to use the sample

Pan and zoom into the desired area, making sure the area is within the red boundary. Click the ‘Export tiles’ button to start the process. On successful completion you will see a preview of the downloaded tile package.

How it works

  1. Create a map and set its
    to 10,000,000. Limiting the scale in this sample limits the potential size of the selection area, thereby keeping the exported tile package to a reasonable size.
  2. Create an
    , passing in the URI of the tiled layer.
  3. Create default
    for the task, specifying extent, minimum scale and maximum scale.
  4. Use the parameters and a path to create an
    from the task.
  5. Start the job, and when it completes successfully, get the resulting
    .
  6. Use the tile cache to create an
    , and display it in the map.

Relevant API

  • ArcGISTiledLayer
  • ExportTileCacheJob
  • ExportTileCacheParameters
  • ExportTileCacheTask
  • TileCache

Additional information

ArcGIS tiled layers do not support reprojection, query, select, identify, or editing. See the Layer types discussion in the developers guide to learn more about the characteristics of ArcGIS tiled layers.

Tags

cache, download, export, local, offline, package, tiles

Sample Code

ExportTiles.xaml ExportTiles.xaml ExportTiles.xaml.cs
<UserControl x:Class="ArcGIS.WinUI.Samples.ExportTiles.ExportTiles"
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" />
<Border Style="{StaticResource BorderStyle}">
<StackPanel>
<Button x:Name="MyExportButton"
HorizontalAlignment="Stretch"
Click="MyExportButton_Click"
Content="Export 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"
Margin="0,10,0,0"
HorizontalAlignment="Stretch"
Click="CancelJobButton_Click"
Content="Cancel"
Visibility="Collapsed" />
<Button x:Name="MyClosePreviewButton"
Margin="0,10,0,0"
HorizontalAlignment="Stretch"
Click="ClosePreview_Click"
Content="Close preview"
Visibility="Collapsed" />
</StackPanel>
</Border>
</Grid>
</UserControl>