Analyze the viewshed for an object (GeoElement) in a scene.
      
  
    
Use case
A viewshed analysis is a type of visual analysis you can perform on a scene. The viewshed aims to answer the question 'What can I see from a given location?'. The output is an overlay with two different colors - one representing the visible areas (green) and the other representing the obstructed areas (red).
How to use the sample
Tap to set a destination for the vehicle (a GeoElement). The vehicle will 'drive' towards the tapped location. The viewshed analysis will update as the vehicle moves.
How it works
- Create and show the scene, with an elevation source and a buildings layer.
 - Add a model (the 
GeoElement) to represent the observer (in this case, a tank).- Use a 
SimpleRendererwhich has a heading expression set in theGraphicsOverlay. This way you can relate the viewshed's heading to theGeoElementobject's heading. 
 - Use a 
 - Create a 
GeoElementViewshedwith configuration for the viewshed analysis. - Add the viewshed to an 
AnalysisOverlayand add the overlay to the scene. - Configure the SceneView 
CameraControllerto orbit the vehicle. 
Relevant API
- AnalysisOverlay
 - GeodeticDistanceResult
 - GeoElementViewshed
 - GeometryEngine.DistanceGeodetic
 - ModelSceneSymbol
 - OrbitGeoElementCameraController
 
Offline data
This sample downloads the following items from ArcGIS Online automatically:
- bradley_low_3ds.zip - Model Scene Symbol for use in ArcGIS Runtime Samples
 
About the data
This sample shows a Johannesburg, South Africa Scene from ArcGIS Online. The sample uses a Tank model scene symbol hosted as an item on ArcGIS Online.
Tags
3D, analysis, buildings, model, scene, viewshed, visibility analysis
Sample Code
<UserControl
    x:Class="ArcGISRuntime.UWP.Samples.ViewshedGeoElement.ViewshedGeoElement"
    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:SceneView x:Name="MySceneView" />
        <Border Style="{StaticResource BorderStyle}">
            <TextBlock Text="Tap to set a destination for the vehicle."
                       TextAlignment="Center"
                       FontWeight="SemiBold" />
        </Border>
    </Grid>
</UserControl>