Elevation Profile widget

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 the ground, 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 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). Line features from map services are not selectable. The widget uses an elevation layer to provide base heights for the layers in the map. By default, the widget uses the Esri Terrain 3D elevation layer for all web maps and for web scenes without a defined ground layer. You can replace the default Terrain 3D elevation layer with a custom web elevation layer in your map or scene if, for example, you want 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:

  • Source—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, selectable layers, and intersecting layers.
    • Profile Settings—Customize the settings for the elevation profile graph.
      • Select elevation layer—Use the elevation layer defined in the web scene, or use a custom elevation layer.
        • Use ground elevation layer from web scene—Select this option to use the elevation layer from the web scene to get the results for a drawn or selected line.
        • Use custom elevation layer—Change the default Terrain 3D elevation layer by clicking Set layer to provide a service URL for a custom elevation layer.
          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

      • 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).

      • Style—Change the display color for the ground elevation profile in the graph and the color used to highlight the selected line features on the web map or scene.
      • Volumetric objects—Generate an 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.
      • Show profile statistics—Choose which profile statistics to display for the ground elevation, 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.
    • 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. Profiles for selected lines will display on the ground based on the elevation layer defined under Profile Settings.
      • Customize—Select this profile rendering mode to choose 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—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 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.
    • 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.
      • 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.
  • 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 Select line action.