Generate a local geodatabase from an online feature service.
Use case
Generating geodatabases is the first step toward taking a feature service offline. It allows you to save features locally for offline display.
How to use the sample
Zoom to any extent. Then click the generate button to generate a geodatabase of features from a feature service filtered to the current extent. A red outline will show the extent used. The job's progress is shown while the geodatabase is generated.
How it works
- Create a
GeodatabaseSyncTask
with the URL of the feature service and load it. - Create
GenerateGeodatabaseParameters
specifying the extent and whether to include attachments. - Create a
GenerateGeodatabaseJob
withgeodatabaseSyncTask.GenerateGeodatabaseAsync(parameters, downloadPath)
. Start the job withjob.Start()
. - When the job is done,
job.GetResultAsync()
will return the geodatabase. Inside the geodatabase are feature tables which can be used to add feature layers to the map. - Call
syncTask.UnregisterGeodatabaseAsync(geodatabase)
after generation when you're not planning on syncing changes to the service.
Relevant API
- GenerateGeodatabaseJob
- GenerateGeodatabaseParameters
- Geodatabase
- GeodatabaseSyncTask
Tags
disconnected, local geodatabase, offline, sync
Sample Code
<UserControl
x:Class="ArcGISRuntime.UWP.Samples.GenerateGeodatabase.GenerateGeodatabase"
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="GenerateButton"
Content="Generate geodatabase"
IsEnabled="False" HorizontalAlignment="Stretch"
Click="GenerateButton_Clicked" />
<ProgressBar x:Name="GenerateProgressBar"
Visibility="Collapsed"
Margin="0,5,0,0"
MinHeight="10" />
</StackPanel>
</Border>
</Grid>
</UserControl>