Point elevation is the vertical distance (height) of a single location on the Earth's surface based on a datum/elevation/at-many-points request for the ArcGIS Elevation service
You can use this operation to:
- Find the elevations of multiple geographic features such as weather stations.
- Create elevation profiles of trails or roads.
- Analyze terrain patterns across a region.
- Measure depth variations in water bodies.
- Plan flight paths by assessing elevation changes along a route.
How to find the elevations of multiple points
The typical workflow to find the elevations of multiple points is to:
- Define an array of longitude, latitude pairs (up to 100).
- Define the datum
A datum is a mathematical model of the Earth's shape used to measure locations (horizontal datums) and elevations (vertical datums). , e.g. mean sea level or ellipsoid (ground level). - Access the Elevation service
The elevation service, also known as ArcGIS Elevation service, is a location service hosted by Esri that returns TopoBathy elevation values for a single location or multiple locations. using an access tokenAn access token is an authorization string that provides access to secure ArcGIS content, data, and services. Its capabilities are determined by the privileges it supports. It is obtained by implementing API key authentication, User authentication, or App authentication. with Elevation service privileges.
URL request
https://elevation-api.arcgis.com/arcgis/rest/services/elevation-service/v1/elevation/at-many-pointsRequired parameters
| Name | Description | Examples |
|---|---|---|
coordinates | An array of (longitude, latitude) pairs in the WGS84 spatial reference with a maximum size of 100 coordinates. | [[31.134167, 29.979167], [31.130833, 29.976111], [31.128333, 29.9725]] |
token | An API key or OAuth 2.0 access token | token= |
Key parameters
| Name | Description | Examples |
|---|---|---|
relative | The datum | relative (default value), relative |
f | The format of the data returned. | f=json, f=pjson |
Code examples
This example uses /elevation/at-many-points to get the elevation values for an array of coordinates. Each coordinate is a pair of longitude and latitude. The datum used in this example is mean to show elevation above mean sea level.
Steps
- Reference the elevation service.
- Define an array of coordinates to retrieve elevation values for.
- Optionally, include the
relativeparameter with a value of eitherTo meanorSea Level ellipsoid. - Set the token parameter to your access token.
Find the elevations of multiple points
APIs
async function getElevationData() {
const url =
"https://elevation-api.arcgis.com/arcgis/rest/services/elevation-service/v1/elevation/at-many-points";
const data = await arcgisRest.request(url, {
method: "POST",
params: {
coordinates: JSON.stringify(points),
},
authentication: arcgisRest.ApiKeyManager.fromKey(esriConfig.apiKey),
});
const elevationValues = data.result.points.map((point) => point.z);
points.forEach(([longitude, latitude], index) => {
const elevation = elevationValues[index];
const point = {
type: "point",
longitude: longitude,
latitude: latitude,
};
const simpleMarkerSymbol = {
type: "simple-marker",
color: "black",
size: "10px",
outline: {
color: "white",
width: 1,
},
};
const popupTemplate = {
title: "Elevation data relative to mean sea level",
content: `Latitude: ${latitude}<br>Longitude: ${longitude}<br>Elevation: ${elevation} meters`,
};
const polylineGraphic = new Graphic({
geometry: {
type: "polyline",
paths: points,
},
symbol: {
type: "simple-line",
width: 1,
},
});
graphicsLayer.add(polylineGraphic);
const pointGraphic = new Graphic({
geometry: point,
symbol: simpleMarkerSymbol,
popupTemplate: popupTemplate,
});
graphicsLayer.add(pointGraphic);
});
REST API
# You can also use wget
curl -X POST https://elevation-api.arcgis.com/arcgis/rest/services/elevation-service/v1/elevation/at-many-points \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: YOUR_ACCESS_TOKEN'Tutorials

Find the elevations of multiple points
Find elevation values of multiple locations on land or water.