Elevation Data and Elevation Profile¶
ODIN supports RGB-encoded terrain tiles for displaying elevation data. When configured, elevation information is shown at the cursor position and can be used to generate elevation profiles along lines.
Setting Up Elevation Data¶
Elevation data is provided through tile services that encode elevation values in the RGB channels of each pixel (Mapbox Terrain-RGB format). ODIN supports three tile service types as terrain sources:
- XYZ — direct
{z}/{x}/{y}tile URL - TileJSON — a single TileJSON endpoint
- TileJSON Discovery — a server (e.g. mbtileserver) that exposes multiple tilesets, any of which can individually be marked as terrain
Step 1: Add a Terrain Tile Service¶
- Press
Ctrl+Nfollowed byTto create a new tile service - In the URL field, enter the address of your terrain tile server
- Press
Tabor click outside the field to confirm
ODIN automatically detects the service type from the URL response.
Step 2: Mark as Terrain Data¶
For XYZ and TileJSON services:
- In the tile service properties, enable the RGB-encoded terrain data checkbox
- This tells ODIN to interpret the tile pixels as elevation values instead of displaying them as a visible map layer
For TileJSON Discovery services:
A discovery endpoint may expose multiple tilesets — some may be regular map tiles, others may contain elevation data. Terrain is configured per tileset:
- In the layer list, select the tileset that contains elevation data
- Enable the RGB-encoded terrain data checkbox
- Repeat for any additional terrain tilesets
Each discovered tileset can be independently marked as terrain or left as a regular map layer.
The terrain layer will be active but invisible on the map. Elevation values are decoded using the Mapbox Terrain-RGB formula:
Step 3: Verify¶
Once configured, the current elevation is displayed in the on-screen display (bottom-right corner) as you move the cursor over the map.
Elevation Profile¶
The Elevation Profile tool generates a chart showing elevation (Y-axis) vs. distance (X-axis) along a line. It works independently of the current map viewport — even parts of the line that extend beyond the visible area are sampled correctly.
Creating an Elevation Profile¶
There are two ways to create an elevation profile:
Option A: From a Selected Feature¶
- Select an existing feature with a LineString geometry on the map
- Open the measure dropdown in the toolbar (ruler icon)
- Click Elevation Profile
- The profile chart appears at the bottom of the screen
Option B: By Drawing a Line¶
- Make sure no LineString feature is selected
- Open the measure dropdown and click Elevation Profile
- Draw a line on the map by clicking to place points
- Double-click to finish the line
- The profile chart appears at the bottom of the screen
Reading the Profile Chart¶
The chart displays:
- X-axis: Distance along the line (in meters or kilometers)
- Y-axis: Elevation (in meters), auto-scaled to the data range
- Orange filled area: The elevation curve along the line
- Dashed vertical lines: Segment boundaries (see below)
Header Statistics¶
The header bar shows summary statistics for the profile:
| Statistic | Description |
|---|---|
| Min | Lowest elevation along the line |
| Max | Highest elevation along the line |
| Dist | Total geodesic length of the line |
| ↑ | Total ascent (cumulative elevation gain) |
| ↓ | Total descent (cumulative elevation loss) |
Segment Markers¶
When the profile is based on a line with multiple segments (more than two vertices), dashed vertical lines appear in the chart at the distance where each segment boundary (vertex) is located. These markers help you correlate specific sections of the profile with the corresponding segments of the line on the map. For example, if your line follows a road with several waypoints, each marker shows where one segment ends and the next begins.
Hover Interaction¶
- Move the mouse over the chart to see a crosshair with the exact elevation and distance at that position
- A corresponding orange marker appears on the map, showing the geographic location of the hovered point
- Moving the mouse off the chart removes the marker
Editing the Profile Line¶
Drawn Lines¶
Lines drawn with the Elevation Profile tool are immediately editable:
- Move a vertex: Click and drag an existing vertex
- Add a vertex: Click on a segment between vertices
- Remove a vertex: Alt-click (Option-click on macOS) on a vertex
The elevation profile recalculates automatically after each edit.
Selected Features¶
When the profile is based on a selected feature from the map, edits made to that feature through ODIN's standard modify tool are also reflected in the profile. The chart updates automatically when the geometry changes.
Closing the Profile¶
Click the X button in the profile panel header. This also removes the line highlight and hover marker from the map.
Tips¶
- The Elevation Profile button in the toolbar is only enabled when at least one terrain tile service is configured
- Disabling the last terrain source automatically closes any open elevation profile
- You can create multiple profiles in sequence — each new profile replaces the previous one
- For best results, use a terrain tile service that covers the area of your line
- Terrain tiles are cached in memory (up to 200 tiles), so revisiting the same area is fast
- The tool automatically uses the highest available zoom level of the terrain service, regardless of how far you are zoomed in on the map
Troubleshooting¶
| Problem | Solution |
|---|---|
| Elevation Profile is greyed out in the menu | No terrain tile service is configured. Add a tile service (XYZ, TileJSON, or TileJSON Discovery) and enable "RGB-encoded terrain data" |
| Profile chart is empty or shows gaps | The line extends beyond the terrain tile coverage area. Gaps indicate coordinates where no elevation data is available |
| No elevation shown at cursor position | Verify the terrain tile service is correctly configured and the server is accessible |
| Profile doesn't update after editing | Edits trigger a debounced recalculation (300ms delay). Wait briefly for the profile to refresh |
Terrain Tile Sources¶
Any tile server providing Mapbox Terrain-RGB encoded tiles is compatible. Supported configurations:
- Direct XYZ URL — standard
{z}/{x}/{y}tile endpoint - TileJSON endpoint — a URL serving a TileJSON document with a
tilesarray - TileJSON Discovery server — a server like mbtileserver that lists multiple tilesets; individual tilesets can be marked as terrain independently
In all cases, tiles must be served with CORS headers (Access-Control-Allow-Origin) enabled.