3D viewshed
A viewshed analysis indicating the visibility of parts of Yosemite Valley from the summit of El Capitan.
What is viewshed analysis?
A viewshed analysis is type of visibility analysis that calculates and displays the visibility (either visible or obstructed) of 3D elements in a scene from an observer's perspective. A viewshed is calculated from an observer point, which can be a point location, a camera, or a geoelement. You may also provide additional properties such as heading and pitch to set the exact perspective of the observer.
The result of viewshed analysis is a viewshed layer that represents what can be seen from the observer's point. Within the specified area, portions of the scene are visible to the observer with a color indicating visibility (the default is green). Portions not visible to the observer display in a color indicating that the view is obstructed (the default is red).
Viewshed analysis has practical applications in urban planning, military science, and many other fields.
A popular use of viewshed analysis is to determine the optimal placement of towers. Companies perform viewshed analysis when planning the location of new cell towers in order to maximize their service coverage. Additionally, the United States Forest Service previously performed viewshed analysis when planning the locations of fire observation towers, though the use of such towers has since been discontinued.
Other real-world use cases for viewshed analysis include the following:
- Maximizing visibility of a new public park or monument.
- Minimizing visibility of landfills, parking lots, and oil rigs.
- Planning the route of hiking trails to create scenic views.
Types of viewshed operations
Operation | Description | Example |
---|---|---|
Location | Performs viewshed analysis from a point location anywhere in space. |
![]() |
Location | Performs viewshed analysis from the perspective of a Camera. |
![]() |
Geo | Performs viewshed analysis from a GeoElement in a scene. |
![]() |
How to perform a viewshed analysis
Client-side viewshed analysis can be performed using any of the ArcGIS Maps SDKs for Native Apps. ArcGIS Maps SDK for JavaScript can perform and display server-side viewshed analyses by making a request to an ArcGIS Server Geoprocessing service.
The general steps for performing a viewshed analysis with ArcGIS Maps SDKs for Native Apps are as follows:
Create a scene view and set its extent to the desired location.
Create a point, camera, or geoelement to serve as an observer point.
Create a
Viewshed
for your type of observer and set the necessary properties.Add the
Viewshed
to a newAnalysis
.Overlay Add the
Analysis
to the scene view to display the results.Overlay
Viewshed observer properties
To perform a viewshed analysis, you set several properties that define a perspective and boundaries for the operation. These properties describe where the observer is looking in 3D space, the size of their field of view, and the minimum/maximum distance they can see.
The heading defines the observer's view direction, relative to north. North has a value of 0
(in degrees) and increments upwards as you rotate clockwise.
The pitch defines the angle of the observer's view direction. A value of 0
means the observer is looking straight down, 90
straight out, and 180
straight up.
The horizontal angle defines how wide the scope is from the observer's view. A value of 360
means the observer's horizontal field of view captures their entire surroundings. Values closer to 0
narrow the horizontal field of view in the direction of the heading.
The vertical angle defines how tall the scope is from the observer's view. A value of 360
means the observer's vertical field of view captures their entire surroundings. Values closer to 0
narrow the vertical field of view in the direction of the pitch.
The minimum distance and maximum distance create a range of distances away from the observer in which to perform the viewshed analysis.
Code examples
Display a viewshed (Point)
This example performs and displays a viewshed analysis in a scene view from a 3D point location. The observer point and observer perspective are shown in blue. Locations visible from the observer point are displayed in green, while obstructed areas are displayed in red.
Display a viewshed (Camera)
This example performs and displays a viewshed analysis in a scene view from the perspective of a camera. Once the viewshed operation is complete, the scene may be panned to view visible and obstructed areas.
Display a viewshed (GeoElement)
This example performs and displays a viewshed analysis in a scene view from the perspective of a tank geoelement. The viewshed operation dynamically responds when the tank moves to determine the viewpoint of someone driving down the road.
Tutorials

Display a viewshed
Perform and display a viewshed analysis in a 3D scene.

Display a line of sight
Perform and display a line of sight analysis in a 3D scene.

Measure a distance in 3D
Evaluate the horizontal, vertical, and direct distances between two points in a 3D scene.
API support
Viewshed analysis | Line of sight analysis | Distance measurement | Area measurement | |
---|---|---|---|---|
ArcGIS Maps SDK for JavaScript | 1 | 2 | ||
ArcGIS Maps SDK for .NET | ||||
ArcGIS Maps SDK for Kotlin | ||||
ArcGIS Maps SDK for Swift | ||||
ArcGIS Maps SDK for Java | ||||
ArcGIS Maps SDK for Qt | ||||
ArcGIS API for Python | ||||
ArcGIS REST JS | ||||
Esri Leaflet | ||||
MapBox GL JS | ||||
OpenLayers |
- 1. Access with geoprocessing task
- 2. Supports point location line of sight
Tool support
Viewshed analysis | Line of sight analysis | Distance measurement | Area measurement | |
---|---|---|---|---|
ArcGIS Pro | ||||
ArcGIS Scene Viewer |