Độ cao địa hình (Việt Nam) API
Độ cao địa hình (mét) cho mọi điểm ở Việt Nam và lân cận (Copernicus DEM 90 m): một điểm, tới 100 điểm, hoặc mặt cắt dọc tuyến kèm tổng leo / xuống dốc.
lat + lon trả về độ cao so với mực nước biển trung bình (geoid EGM2008) tại điểm đó, nội suy song tuyến từ 4 điểm lưới gần nhất của Copernicus DEM GLO-90 (3 giây cung, khoảng 90 m). points nhận tới 100 điểm ([[lat, lon], …], [{lat, lon}] hoặc lat,lon|lat,lon). path (đường gấp khúc tới 100 đỉnh, hoặc GeoJSON LineString) với samples (2–500, mặc định 100) trả về mặt cắt độ cao tại các khoảng cách đều nhau, kèm độ cao đầu / cuối / thấp nhất / cao nhất, tổng leo dốc, tổng xuống dốc và độ dốc lớn nhất.
Phạm vi: khung 8–24° Bắc, 102–110° Đông (Việt Nam, Lào, Campuchia, một phần Thái Lan và Nam Trung Quốc). Biển khơi không có tile DEM nên trả 0 (source: "ocean"); điểm ngoài khung trả null (out_of_coverage). DEM là mô hình bề mặt: gồm cả nhà cửa và tán rừng, nên ở đô thị và rừng độ cao cao hơn mặt đất vài mét, các đỉnh nhọn bị làm trơn (Fansipan đo được khoảng 3.100 m so với 3.143 m).
Giấy phép: Copernicus DEM, dùng thương mại miễn phí kèm dòng ghi công trong attribution (cần hiển thị). Dữ liệu tĩnh, chỉ dựng lại khi Copernicus phát hành phiên bản mới.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
lat | query | number | không | Vĩ độ của một điểm (cùng lon). | |
lon | query | number | không | Kinh độ (chấp nhận lng). | |
points | body|query | array | không | Tới 100 điểm: [[lat, lon], …], [{lat, lon}] hoặc lat,lon|lat,lon. | |
path | body|query | array | không | Đường gấp khúc (2–100 đỉnh, cùng định dạng, hoặc GeoJSON LineString) để lấy mặt cắt độ cao. | |
samples | body|query | number | không | 100 | Số điểm lấy mẫu dọc path (2–500). |
Ví dụ
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));Kết quả trả về
{
"distance_m": 7992.4,
"samples": 50,
"spacing_m": 163.1,
"summary": {
"start_m": 1507.1,
"end_m": 3101.9,
"min_m": 1246.9,
"max_m": 3101.9,
"gain_m": 2066.2,
"loss_m": 471.4,
"max_grade_percent": 78.8
},
"profile": [
{
"distance_m": 0,
"lat": 22.3367,
"lon": 103.8438,
"elevation_m": 1507.1
},
{
"distance_m": 163.1,
"lat": 22.336018,
"lon": 103.842396,
"elevation_m": 1501.7
},
"…",
{
"distance_m": 7992.4,
"lat": 22.3033,
"lon": 103.775,
"elevation_m": 3101.9
}
],
"note": "Copernicus DEM GLO-90 is a surface model (3 arc-seconds, ~90 m): heights include buildings and trees, relative to the EGM2008 geoid (≈ mean sea level); typical error a few metres, more on steep slopes. Ocean = 0. …",
"coverage": {
"south": 8,
"north": 24,
"west": 102,
"east": 110,
"note": "Vietnam and neighbouring areas for now"
},
"data_version": "20261111",
"attribution": "Produced using Copernicus WorldDEM-90 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved. The organisations in charge of the Copernicus programme by law or by delegation do not incur any liability for any use of the Copernicus WorldDEM-90."
}
Ứng dụng
- Hiển thị độ cao của bất động sản, lô đất nông nghiệp theo toạ độ
- Vẽ mặt cắt độ cao và tổng leo dốc của cung đường chạy bộ, đạp xe
- Ước lượng nguy cơ ngập bằng cách so cao độ trong một khu vực
- Khảo sát vị trí trạm viễn thông, công trình ở vùng núi
Hỏi đáp
Độ chính xác thế nào?
Copernicus GLO-90 có sai số đứng thường vài mét ở vùng bằng phẳng, lớn hơn ở sườn dốc; với lưới 90 m nó không thấy được gò nhỏ, đê hay từng toà nhà.
Vì sao ở thành phố số đo cao hơn mặt đất?
Đây là mô hình bề mặt số: mái nhà và ngọn cây là một phần của bề mặt. Hãy dùng cho địa hình, không dùng làm cốt nền công trình.
Có mở rộng sang nước khác không?
Bản đầu phủ Việt Nam và lân cận. Cùng quy trình có thể mở rộng khung sau này.
API liên quan
Kiểm tra JSON
Kiểm tra cú pháp JSON, báo đúng dòng và cột bị lỗi, và validate dữ liệu theo JSON Schema (draft 4, 7, 2019-09 hoặc 2020-12).
{ }Định dạng JSON
Làm đẹp JSON với thụt lề 0-8 dấu cách hoặc tab, rút gọn (minify) hoặc sắp xếp key theo bảng chữ cái. Báo lỗi cú pháp kèm dòng và cột.
CSVCSV sang JSON
Chuyển CSV thành mảng object JSON theo dòng tiêu đề, tự nhận dấu phân cách, tự chuyển số và boolean, báo lỗi từng dòng.