Elevation Finder Online
Terrain elevation in metres for any point in Vietnam and nearby (Copernicus DEM 90 m): one point, 100 points or a path profile with gain and loss.
Result
Press “Run” to see the result.
lat + lon returns the height above mean sea level (EGM2008 geoid) at that point, interpolated bilinearly between the four surrounding samples of the Copernicus DEM GLO-90 grid (3 arc-seconds, about 90 m). points takes up to 100 points ([[lat, lon], …], [{lat, lon}] or lat,lon|lat,lon). path (a polyline of up to 100 vertices, or a GeoJSON LineString) with samples (2–500, default 100) returns an elevation profile at evenly spaced distances plus start / end / min / max height, total gain and loss and the steepest grade.
Coverage: the box 8–24° N, 102–110° E (Vietnam, Laos, Cambodia and parts of Thailand and southern China). The open sea has no DEM tile and returns 0 (source: "ocean"); points outside the box return null (out_of_coverage). The DEM is a surface model: it includes buildings and forest canopy, so heights in cities and forests are a few metres above the ground, and narrow peaks are smoothed (Fansipan reads about 3 100 m for 3 143 m).
Licence: Copernicus DEM, free for commercial use with the attribution returned in attribution (keep it visible). The tiles are static: they are rebuilt only when Copernicus publishes a new release.
Use this in your code
curl -X POST "https://apibox.io.vn/v1/elevation" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"path":[[22.3367,103.8438],[22.3033,103.775]],"samples":50}'const res = await fetch('https://apibox.io.vn/v1/elevation', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"path": [
[
22.3367,
103.8438
],
[
22.3033,
103.775
]
],
"samples": 50
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/elevation",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"path": [[22.3367, 103.8438], [22.3033, 103.775]], "samples": 50},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/elevation');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"path":[[22.3367,103.8438],[22.3033,103.775]],"samples":50}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));API documentation → Get a free API key
FAQ
How accurate is it?
Copernicus GLO-90 has a typical vertical error of a few metres on flat open ground, more on steep slopes; at 90 m spacing it cannot see small hills, embankments or single buildings.
Why is the value higher than the ground in a city?
It is a digital surface model: roofs and tree tops are part of the surface. Use it for terrain, not for the floor level of a building.
Will other countries be added?
The first version covers Vietnam and its neighbours. The same pipeline can extend the box later.