The Elevation Profile widget generates and displays an elevation profile based on an input path created by drawing or selecting single- or multisegment lines on a web map or scene. The widget can display elevation profile lines for elevation layers, for 3D mesh layers, and for selected line features. It can also display the elevation of intersecting features along a profile or within a buffered distance of the profile on the map. Users can view slope and elevation statistics and export the data for each profile and the intersecting layers.
Examples
Use this widget to support app design requirements such as the following:
- You want to draw or select a path to get the ground elevation profile.
- You want to compare the profiles for multiple elevation layers.
- You want to select a line to get its profile relative to the ground using z-values or values from elevation fields.
- You want to view statistics for an elevation profile, such as the slope, the maximum and minimum elevation, and the elevation loss and gain.
- You want to view assets intersecting along the profile, such as structures along connected wastewater pipes.
- You want to export the elevation profile values to CSV format for a given segment.
Usage notes
This widget requires connecting to a Map widget. To generate an elevation profile for selected line features, the Map widget must be connected to a data source (2D web map or 3D web scene). Individual subtype sublayers from subtype group layers are selectable. The widget uses an elevation layer to provide base heights for the layers in the map. By default, the widget sets the Esri Terrain 3D elevation layer as the reference layer for all web maps and for web scenes without a defined ground layer. You can add more elevation layers and change which one is used as a reference if you want to compare different elevation sources or you need higher-resolution data for an area of interest.
Note:
To publish custom elevation services, share a tile package using LERC compression format. The service root information should include a property for cacheType: Elevation. Learn more about Tiled Elevation Service.
Tip:
For best results when using web scenes, use the same elevation mode in Scene Viewer for all selectable line layers. If multiple features are selected from line layers that use different elevation modes, the widget displays the features using the elevation mode from the first selected feature.
Settings
The Elevation Profile widget includes the following settings:
- Select a Map widget—Select a Map widget.
- Map Settings—Optionally, customize the elevation profile
settings for the map and each layer. You can change the display settings for the elevation
profile graph and configure elevation layers, selectable layers, and intersecting layers.
- Elevation Layers—Configure elevation layers and set the reference layer, also known as the ground.
- New layer—Optionally, select other Elevation Layers to display in the graph. You can choose from the ground layers in a web scene, feature layer items, or add a service URL. It must be a valid Elevation Layer or a tiled elevation service.
Note:
The New Zealand elevation layer is an example of a valid elevation layer service:
https://services1.arcgisonline.co.nz/arcgis/rest/services/Elevation/New_Zealand_Elevation/ImageServer
- Label—Set the label that will display for this layer in the elevation profile graph.
- Style—Change the color, style, and width for representing the elevation layer's profile in the graph.
- Show profile statistics—Choose which profile statistics to display for this elevation layer, including options for slope, elevation gain and loss, and more. You can drag selected options to reorder them. The statistics are calculated dynamically every time the elevation profile is updated. Users can view statistics by clicking the widget's Profile Statistics button.
- Set reference layer—Choose which elevation layer is used as the base reference layer. All other profiles will be drawn in the graph relative to this reference layer's profile.
- Volumetric objects—Display the elevation profile for scene layers, integrated mesh layers, and layers with volumetric 3D symbols. This option is only available and supported for web scenes. You can customize the label that appears in the graph's legend and the style of the profile line. Profile statistics can also be shown for this layer.
- Display units—Choose the
units used to
display the distance and elevation values for the profile graph. By
default, the widget uses the units defined in your organization
settings. All distance and elevation values are converted to
display with these units. For example, when a user selects a line feature that has an elevation of 200 meters and the selected display unit is feet, the widget converts meters to feet and displays an elevation of 656.168 feet.
Note:
When the spatial reference is projected using a projection other than Web Mercator and the drawn or selected path is shorter than the geodesic distance threshold, distances are computed planimetrically (independent of elevation).
- New layer—Optionally, select other Elevation Layers to display in the graph. You can choose from the ground layers in a web scene, feature layer items, or add a service URL. It must be a valid Elevation Layer or a tiled elevation service.
- Selectable Layers—Allow the user to select line features on the map to generate an elevation profile.
- Ground elevation—Select this profile rendering mode to make all line layers selectable on the map. Selected lines will be represented along the profile of the reference elevation layer defined under Elevation Layers.
- Customize—Select this profile rendering mode to customize which line layers can be selected on
the map to display an elevation profile. For each selectable
layer in the list, configure the following settings:
- Elevation Settings—Determine how each profile is represented relative to the reference elevation layer. Specify the data source for the elevation values by selecting one of the following Elevation value options:
- Z Value—Use the z-values stored in the layer's geometry. If no units are defined for the vertical z-value in the layer, the units from the reference layer's spatial reference are used. This option is only available if the layer supports z-values.
- No Elevation—Use the ground elevation for the selected line. (Features with no elevation display on the ground.) This is the default behavior.
- One Field—Define a field that contains elevation data and specify the units.
- Two Fields—Define two fields that contain elevation data for the start and the end of a line and specify the units.
- Style—Change the color, style, and width for line features selected in this layer when they appear in the elevation profile graph.
- Elevation Settings—Determine how each profile is represented relative to the reference elevation layer. Specify the data source for the elevation values by selecting one of the following Elevation value options:
- Map selection color—Choose which color is used to highlight the selected line features on the web map or scene.
- Highlight next selectable—Enable this option to highlight connected line segments on the map that can be selected next to create an elevation profile (e.g., select multiple connected trail segments in a row to get the complete profile for planning a hike).
- Select from added layer—Support selecting lines from layers added to the map with the Add Data widget.
- Intersecting Layers—Display features intersecting with the drawn or selected lines on the elevation profile graph.
- Customize intersecting layers—Define intersecting layers and configure the following settings:
- Elevation Settings—Specify the data source for the elevation values by selecting one of the following Elevation value options:
- Z Value—Use the z-values stored in the layer's geometry. If no units are defined for the vertical z-value in the layer, the units from the ground spatial reference are used. This option is only available if the layer supports z-values.
- No Elevation—Use the ground elevation for the selected line. (Features with no elevation display on the ground.) This is the default behavior.
- One Field—Define a field that contains elevation data and specify the units.
- Two Fields—Define two fields that contain elevation data and specify the units.
- Match Profile—Get elevation values for features based on where they intersect with the profile. This option is useful if you have layers without z-values or an elevation field. For example, you may have a point layer showing fire hydrants that you know are along a road, but the hydrant layer does not have its own elevation data. If you set the hydrant layer Elevation value to Match Profile, you can borrow elevation data from the road layer. The widget interprets that the hydrant's elevation is identical to the road's at the point where they intersect. Features appear on the elevation profile graph snapped to the intersection points.
- Display Field—The field value to be displayed when hovering over each feature from this layer represented in the graph.
- Style—Change the color, style, and width for line features selected in this layer when they appear in the elevation profile graph.
- Elevation Settings—Specify the data source for the elevation values by selecting one of the following Elevation value options:
- Buffer—Represent features on the graph at their points of intersection with the buffer area. Connected points are used to represent traversing lines and points with two-field elevation. Customize the buffer distance, units, and style.
- Customize intersecting layers—Define intersecting layers and configure the following settings:
- Elevation Layers—Configure elevation layers and set the reference layer, also known as the ground.
- General Settings—Set an active tool for the widget when it opens and customize the appearance of the elevation profile graph.
- Allow export—Allow users to export the data for each profile and intersecting layer represented in the elevation profile graph.
- Activate when widget opens—Choose to automatically activate the Select line or Draw profile tool to specify whether users can immediately draw or select a line on the map to generate a profile. (Select line is only available when the Map widget is connected to a data source with line layers.)
- Appearance—Customize the elements displayed in the elevation profile graph.
- Graph grids—Display vertical and horizontal grids for each axis.
- Graph axis titles—Display the titles for the distance and elevation axes.
- Legend—Display a legend below the graph. Users can click elements in the legend to hide them in the elevation profile.
Interaction options
Creating an elevation profile generates an output data source that other widgets can use. For example, you can make a Text widget display the profile's maximum elevation value and have the value dynamically change whenever a new profile is generated. The following is a list of statistical values that can be used with the output data source:
- Average positive slope and average negative slope
- Elevation loss and gain
- Geometry of the profile line
- Maximum distance
- Maximum positive slope and maximum negative slope
- Minimum, maximum, and average elevation
You can configure message actions to have the Elevation Profile widget interact with other widgets. For example, you can make the Elevation Profile widget automatically generate a profile when the user selects a line from the map or a List widget. To do this, add the Record selection changes trigger in the List widget's settings, select the Elevation Profile widget as the target, and add the View profile action.