الاستعلام عن الارتفاع
الارتفاع بالأمتار فوق متوسط مستوى سطح البحر لنقطة واحدة أو لعدة نقاط.
GEThttps://api.mygeocode.com/v1/elevation
المعاملات
| المعامل | النوع | الوصف |
|---|---|---|
lat, lonمطلوب* | رقم | نقطة واحدة. |
locationsمطلوب* | سلسلة نصية | *بديل عن lat وlon: حتى 100 نقطة بصيغة lat,lon|lat,lon|.... تُحتسب كل نقطة طلبًا واحدًا. |
keyاختياري | سلسلة نصية | مفتاح API، إذا لم يُرسل في ترويسة. |
تقبل نقطة النهاية أيضًا POST مع جسم JSON {"locations": [[lat, lon], ...]} للقوائم الطويلة التي لا يتسع لها عنوان URL.
مثال
$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/elevation?locations=36.2381,-116.8175|31.5590,35.4732"const points = [[36.2381, -116.8175], [31.5590, 35.4732]];
const url = new URL("https://api.mygeocode.com/v1/elevation");
url.searchParams.set("locations", points.map((p) => p.join(",")).join("|"));
const { results } = await (await fetch(url, { headers: { "X-API-Key": "YOUR_KEY" } })).json();
results.forEach((r) => console.log(r.elevation_m));import requests
points = [(36.2381, -116.8175), (31.5590, 35.4732)]
locations = "|".join(f"{lat},{lon}" for lat, lon in points)
r = requests.get("https://api.mygeocode.com/v1/elevation", params={"locations": locations}, headers={"X-API-Key": "YOUR_KEY"}, timeout=10)
for item in r.json()["results"]:
print(item["elevation_m"])الاستجابة
{
"status": "ok",
"results": [
{ "lat": 36.2381, "lon": -116.8175, "elevation_m": -82.0, "resolution_m": 463.8 },
{ "lat": 31.559, "lon": 35.4732, "elevation_m": -416.0, "resolution_m": 463.8 }
]
}حقول الاستجابة
| الحقل | النوع | الوصف |
|---|---|---|
results | مصفوفة | إدخال واحد لكل نقطة، بترتيب الإدخال. |
results[].elevation_m | رقم أو null | الأمتار فوق متوسط مستوى سطح البحر، بمنزلة عشرية واحدة. قيمة سالبة تحت مستوى سطح البحر، بما في ذلك قاع البحر في المحيط المفتوح (تتضمن مجموعة البيانات قياسات الأعماق). null فقط حيث لا توجد قيمة في مجموعة البيانات. |
results[].resolution_m | رقم | تباعد شبكة مجموعة البيانات بالأمتار: 463.8 (15 ثانية قوسية). |
ملاحظات
- تأتي القيم من أقرب خلية في شبكة بدقة 15 ثانية قوسية (نحو 460 م)، عالمية، تشمل اليابسة وقاع البحر. توقّع ارتفاع التضاريس المحيطة لا ارتفاع نقطة بعينها: مناسب للمقاطع الجانبية ومستجمعات المياه ومسارات الراديو وفحوص المعقولية، لكنه أخشن من أن يصلح لمبنى واحد أو حافة جبلية ضيقة. تكون الدقة الرأسية عادةً في حدود بضعة أمتار في التضاريس اللطيفة وعشرات الأمتار في الجبال الشديدة الانحدار.
- فوق المسطحات المائية الداخلية (البحيرات والخزانات) تكون القيمة هي ارتفاع السطح.
- الارتفاع لا يتغير. خزّن النتائج مؤقتًا للمدة التي تريدها.
- تتوفر صيغ طلبات Google Elevation وBing Elevations وOpen-Elevation على المضيفات البديلة المتوافقة.
الاستعلام نفسه بصيغ المزوّدين الآخرين
إذا كان لديك كود مكتوب بالفعل لأحد هؤلاء المزوّدين فاحتفظ به: يقبل المضيف البديل المتوافق المسار والمعاملات نفسها ويجيب بشكل استجابة ذلك المزوّد، وخلفه نقطة النهاية هذه. راجع كيف تعمل المضيفات البديلة المتوافقة.
| المزوّد | المضيف | المسار |
|---|---|---|
| منصة Google Maps Platform | gapi.mygeocode.com | /maps/api/elevation/json?locations=lat,lng|lat,lng/maps/api/elevation/json?locations=enc:POLYLINE/maps/api/elevation/json?path=lat,lng|lat,lng&samples=N |
| خدمات Bing Maps REST | bing.mygeocode.com | /REST/v1/Elevation/List?points=lat,lon,lat,lon/REST/v1/Elevation/Polyline?points=lat,lon,lat,lon&samples=N/REST/v1/Elevation/Bounds?bounds=S,W,N,E&rows=R&cols=C (GET أو POST) |
| MapQuest | mapquest.mygeocode.com | /elevation/v1/profile?latLngCollection=lat,lng,lat,lng&shapeFormat=raw&unit=m |
| Open-Elevation | openelevation.mygeocode.com | /api/v1/lookup?locations=lat,lon|lat,lon/api/v1/lookup (POST, JSON body) |
الأخطاء
400 invalid_request عندما لا تُعطى نقطة ولا locations، أو عندما يكون أحد الإحداثيات خارج النطاق أو مشوّه الصيغة، أو عندما يزيد عدد النقاط على 100، أو عندما تنتج samples أو rows أو cols أكثر من 100. 503 backend_unavailable عندما لا تستجيب خدمة الارتفاع، ولا يُحتسب شيء.