Demonstrates how to start and stop the Local Server and start and stop a local map, feature, and geoprocessing service running on the Local Server.
Use case
For executing offline geoprocessing tasks in your ArcGIS Runtime apps via an offline (local) server.
How to use the sample
Click Start Local Server
to start the Local Server. Click Stop Local Server
to stop the Local Server.
The Map Service
control lets you to pick a local service that is available.
After browsing for the desired file, click Start Service
to start the selected service.
When the running service's url appears, select it and click Navigate to service
. To stop this running service, click Stop Service
.
How it works
To start a LocalServer
and attach a LocalService
:
- Create and run a local server with
LocalServer.Instance
. - Start the server asynchronously with
server.StartAsync()
. - Create and run a local service. Here is an example of running a
LocalMapService
:- Instantiate
LocalMapService(Url)
to create a local map service with the given URL path to map package (mpk
ormpkx
file). - Start the job with
LocalMapService.StartAsync()
. The service is added to theLocalServer
automatically.
- Instantiate
- Stop the local server with
LocalServer.Instance.StopAsync()
.
Relevant API
- LocalFeatureService
- LocalGeoprocessingService
- LocalMapService
- LocalServer
- LocalServerStatus
- LocalService
Offline data
- Contour.gpkx - A Geoprocessing Package for generating contour lines.
- PointsofInterest.mpkx
- RelationshipID.mpkx
Additional information
Local Server can be downloaded for Windows and Linux platforms from the developers website. Local Server is not supported on macOS.
Tags
feature, geoprocessing, local services, map, server, service
Sample Code
<UserControl x:Class="ArcGISRuntime.WPF.Samples.LocalServerServices.LocalServerServices"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="LocalServerStartButton"
Grid.Row="0"
Grid.Column="0"
Margin="5"
Click="StartServerButtonClicked"
Content="Start Local Server" />
<Button x:Name="LocalServerStopButton"
Grid.Row="0"
Grid.Column="1"
Margin="5"
Click="StopServerButtonClicked"
Content="Stop Local Server"
IsEnabled="False" />
<ComboBox x:Name="ServiceSelectionCombo"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="5"
IsEnabled="False"
SelectionChanged="Selector_OnSelectionChanged">
<ComboBoxItem>Map Service</ComboBoxItem>
<ComboBoxItem>Feature Service</ComboBoxItem>
<ComboBoxItem>Geoprocessing Service</ComboBoxItem>
</ComboBox>
<Button x:Name="ServiceStartButton"
Grid.Row="2"
Grid.Column="0"
Margin="5"
Click="StartServiceButtonClicked"
Content="Start service"
IsEnabled="False" />
<Button x:Name="ServiceStopButton"
Grid.Row="2"
Grid.Column="1"
Margin="5"
Click="StopServiceButtonClicked"
Content="Stop service"
IsEnabled="False" />
<TextBox x:Name="StatusTextbox"
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="5" />
<ListBox x:Name="ServicesListbox"
Grid.Row="4"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="5" />
<Button Grid.Row="5"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="5"
Click="NavigateButtonClicked"
Content="Navigate to service" />
</Grid>
</UserControl>