Analyze viewshed (geoprocessing)
Calculate a viewshed using a geoprocessing service, in this case showing what parts of a landscape are visible from points on mountainous terrain.
A viewshed is used to highlight what is visible from a given point. A viewshed could be created to show what a hiker might be able to see from a given point at the top of a mountain. Equally, a viewshed could also be created from a point representing the maximum height of a proposed wind turbine to see from what areas the turbine would be visible.
Tap the map to see all areas visible from that point within a 15km radius. Clicking on an elevated area will highlight a larger part of the surrounding landscape. It may take a few seconds for the task to run and send back the results.
- Create a
GeoprocessingTaskobject with the URL set to a geoprocessing service endpoint.
- Create a
FeatureCollectionTableobject and add a new
Featureobject whose geometry is the viewshed's observer
- Make a
GeoprocessingParametersobject passing in the observer point.
- Use the geoprocessing task to create a
GeoprocessingJobobject with the parameters.
- Start the job and wait for it to complete and return a
- Get the resulting
- Iterate through the viewshed features to use their geometry or display the geometry in a new
geoprocessing, heat map, heatmap, viewshed
<?xml version="1.0" encoding="utf-8" ?> <ContentPage x:Class="ArcGISRuntime.Samples.AnalyzeViewshed.AnalyzeViewshed" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:esriUI="clr-namespace:Esri.ArcGISRuntime.Xamarin.Forms;assembly=Esri.ArcGISRuntime.Xamarin.Forms" xmlns:mapping="clr-namespace:Esri.ArcGISRuntime.Mapping;assembly=Esri.ArcGISRuntime"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Label Grid.Row="0" Margin="10,0,0,0" Text="Click a location on the map to perform the viewshed analysis." /> <esriUI:MapView x:Name="MyMapView" Grid.Row="1" /> <ActivityIndicator x:Name="MyActivityIndicator" Grid.Row="1" HorizontalOptions="CenterAndExpand" IsVisible="False" VerticalOptions="CenterAndExpand" /> </Grid> </ContentPage>