Point elevation is the vertical distance (height) of a single location on the Earth's surface based on a datum such as mean sea level or ground level. To find multiple point elevations, you use the /elevation/at-many-points
request for the ArcGIS Elevation service. It is a batch operation that finds the elevations of many points at one time and can be used to perform tasks such as measuring the heights of geographic features, generating elevation profiles, determining terrain variations of a region.
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, e.g. mean sea level or ellipsoid (ground level).
- Access the Elevation service using an access token with Elevation service privileges.
URL request
https://elevation-api.arcgis.com/arcgis/rest/services/elevation-service/v1/elevation/at-many-points
Required 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 from which to measure elevation. The supported datums are above mean sea level or above ground level. | 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
relative
parameter with a value of eitherTo mean
orSea 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.