בקשות להעלאת הרמה
בקשות ל-Elevation API נוצרות כמחרוזת של כתובת URL. ה-API מחזיר נתוני גובה של מיקומים בכדור הארץ. אפשר לציין נתוני מיקום באחת משתי דרכים:
- כקבוצה של
locationsאחד או יותר. - כסדרה של נקודות מחוברות לאורך
path.
בשתי הגישות האלה משתמשים בקואורדינטות של קווי אורך ורוחב כדי לזהות את המיקומים או את קודקודי המסלול. במסמך הזה מתואר הפורמט הנדרש של כתובות ה-URL של Elevation API והפרמטרים הזמינים.
Elevation API מחזיר נתונים לשאילתות של נקודה אחת ברמת הדיוק הגבוהה ביותר שאפשר. שאילתות באצווה שכוללות כמה מיקומים עשויות להחזיר נתונים פחות מדויקים, במיוחד אם המיקומים מרוחקים זה מזה, כי מתבצעת החלקה מסוימת של הנתונים.
בקשת Elevation API נראית כך:
https://maps.googleapis.com/maps/api/elevation/outputFormat?parameters
כאשר outputFormat יכול להיות אחד מהערכים הבאים:
-
json(מומלץ), מציין פלט ב-JavaScript Object Notation (JSON); או xml, מציין פלט ב-XML, עטוף בצומת<ElevationResponse>.
הערה: כדי שכתובות URL יהיו תקינות, הן צריכות להיות מקודדות כמו שצריך. בכל שירותי האינטרנט, כתובות URL מוגבלות ל-16,384 תווים. חשוב לזכור את המגבלה הזו כשיוצרים את כתובות ה-URL. שימו לב שבדפדפנים, בשרתי proxy ובשרתים שונים יכולות להיות מגבלות שונות על מספר התווים בכתובות URL.
חובה להשתמש ב-HTTPS לבקשות שמשתמשות במפתח API.
פרמטרים של בקשות
בקשות ל-Elevation API משתמשות בפרמטרים שונים, בהתאם לסוג הבקשה: מיקומים נפרדים או נתיב מסודר. במיקומים נפרדים, בקשות לגובה מחזירות נתונים על המיקומים הספציפיים שהועברו בבקשה. בנתיבים, בקשות לגובה נדגמות לאורך הנתיב הנתון.
כמו בכל כתובות ה-URL, הפרמטרים מופרדים באמצעות התו אמפרסנד (&). רשימת הפרמטרים והערכים האפשריים שלהם מפורטת בהמשך.
כל הבקשות
-
key– (חובה) מפתח ה-API של האפליקציה. המפתח הזה מזהה את האפליקציה שלכם לצורך ניהול המכסות. איך מקבלים מפתח
בקשות תלויות מיקום
-
locations(חובה) מגדיר את המיקומים בכדור הארץ שמהם יוחזרו נתוני הגובה. הפרמטר הזה מקבל מיקום אחד כצמד {קו רוחב, קו אורך} מופרד בפסיקים (למשל, "40.714728,-73.998672") או כמה צמדים של קווי רוחב/אורך שמועברים כמערך או כקו פוליגוני מקודד. יש מגבלה של 512 נקודות לפרמטר הספציפי הזה. מידע נוסף מופיע בקטע ציון מיקומים בהמשך.
בקשות לנתיב שנדגם
path(חובה) מגדיר נתיב בכדור הארץ שעבורו יוחזרו נתוני גובה. הפרמטר הזה מגדיר קבוצה של שני זוגות או יותר של {קו רוחב, קו אורך} מסודרים, שמגדירים מסלול לאורך פני כדור הארץ. צריך להשתמש בפרמטר הזה בשילוב עם הפרמטרsamplesשמתואר בהמשך. יש מגבלה של 512 נקודות לפרמטר הספציפי הזה. מידע נוסף זמין בקטע ציון נתיבים שבהמשך.-
samples(חובה) מציין את מספר נקודות הדגימה לאורך מסלול שעבורן צריך להחזיר נתוני גובה. הפרמטרsamplesמחלק את ה-pathהנתון לקבוצה מסודרת של נקודות במרחקים שווים לאורך המסלול.
ציון מיקומים
בקשות תלויות מיקום מצוינות באמצעות הפרמטר locations, שמציין בקשות גובה למיקומים הספציפיים שמועברים כערכי קו רוחב/קו אורך.
הפרמטר locations יכול לקבל את הארגומנטים הבאים:
- קואורדינטה אחת:
locations=40.714728,-73.998672 - מערך של קואורדינטות שמופרדות באמצעות התו קו אנכי ("
|"):locations=40.714728,-73.998672|-34.397,150.644 - קבוצה של קואורדינטות מקודדות באמצעות אלגוריתם של קו פוליגוני מקודד:
locations=enc:gfo}EtohhU
מחרוזות של קואורדינטות של קווי רוחב ואורך מוגדרות באמצעות מספרים בתוך מחרוזת טקסט שמופרדת בפסיקים. לדוגמה, "40.714728,-73.998672" הוא ערך תקין של locations. ערכי קו הרוחב וקו האורך חייבים להתאים למיקום חוקי על פני כדור הארץ. קווי רוחב יכולים להיות כל ערך בין -90 ל-90, וקווי אורך יכולים להיות כל ערך בין -180 ל-180. אם תציינו ערך לא חוקי של קו רוחב או קו אורך, הבקשה תידחה כבקשה לא תקינה.
אפשר להעביר עד 512 קואורדינטות במערך או בקו פוליגוני מקודד, ועדיין ליצור כתובת URL תקינה. חשוב לזכור שכאשר מעבירים כמה קואורדינטות, רמת הדיוק של הנתונים שמוחזרים עשויה להיות נמוכה יותר מאשר כשמבקשים נתונים של קואורדינטה אחת. אם חורגים מ-512 נקודות או קואורדינטות בפרמטרים locations או path, מוחזרת התגובה INVALID_REQUEST.
ציון נתיבים
בקשות של נתיב שנדגם מצוינות באמצעות הפרמטרים path ו-samples, שמציינים בקשה לנתוני גובה לאורך נתיב במרווחים שצוינו. כמו בבקשות מיקום שמשתמשות בפרמטר locations, הפרמטר path מציין קבוצה של ערכי קו רוחב וקו אורך. עם זאת, בניגוד לבקשה תלוית מיקום, ב-path מצוינת קבוצה מסודרת של קודקודים. במקום להחזיר נתוני גובה רק בקודקודים, בקשות של מסלולים נדגמות לאורך המסלול, על סמך מספר ה-samples שצוינו (כולל נקודות הקצה).
הפרמטר path יכול לקבל את אחד מהארגומנטים הבאים:
- מערך של שתי מחרוזות טקסט או יותר של קואורדינטות, שמופרדות באמצעות פסיקים ומופרדות באמצעות התו קו אנכי ('
|'):path=40.714728,-73.998672|-34.397,150.644 - קואורדינטות מקודדות באמצעות אלגוריתם של קו פוליגון מקודד:
path=enc:gfo}EtohhUxD@bAxJmGF
מחרוזות של קואורדינטות של קו רוחב וקו אורך מוגדרות באמצעות מספרים בתוך מחרוזת טקסט שמופרדת בפסיקים. לדוגמה, "40.714728,-73.998672|-34.397, 150.644" הוא ערך תקין של path. ערכי קו הרוחב וקו האורך צריכים להתאים למיקום חוקי על פני כדור הארץ. קווי הרוחב יכולים להיות כל ערך בין -90 ל-90, וקווי האורך יכולים להיות כל ערך בין -180 ל-180. אם תציינו ערך לא חוקי של קו רוחב או קו אורך, הבקשה תידחה כבקשה שגויה.
אפשר להעביר עד 512 קואורדינטות במערך או בקו פוליגוני מקודד, ועדיין ליצור כתובת URL תקינה. שימו לב: כשמעבירים כמה קואורדינטות, יכול להיות שרמת הדיוק של הנתונים שיוחזרו תהיה נמוכה יותר מאשר כשמבקשים נתונים של קואורדינטה אחת. אם חורגים מ-512 נקודות או קואורדינטות בפרמטרים locations או path, מוחזרת התגובה INVALID_REQUEST.
תשובות לגבי גובה
- מערך של שתי מחרוזות טקסט או יותר של קואורדינטות, שמופרדות באמצעות פסיקים ומופרדות באמצעות התו קו אנכי ('
|'):path=40.714728,-73.998672|-34.397,150.644 - קואורדינטות מקודדות באמצעות אלגוריתם של קו פוליגוני מקודד:
path=enc:gfo}EtohhUxD@bAxJmGF
מחרוזות של קואורדינטות של קו רוחב וקו אורך מוגדרות באמצעות מספרים בתוך מחרוזת טקסט שמופרדת בפסיקים. לדוגמה, "40.714728,-73.998672|-34.397, 150.644" הוא ערך תקין של path. ערכי קו הרוחב וקו האורך צריכים להתאים למיקום חוקי על פני כדור הארץ. קווי רוחב יכולים להיות כל ערך בין -90 ל-90, וקווי אורך יכולים להיות כל ערך בין -180 ל--180. אם תציינו ערך לא חוקי של קו רוחב או קו אורך, הבקשה תידחה כבקשה שגויה.
אפשר להעביר עד 512 קואורדינטות במערך או בקו פוליגוני מקודד, ועדיין ליצור כתובת URL תקינה. שימו לב: כשמעבירים כמה קואורדינטות, יכול להיות שרמת הדיוק של הנתונים שיוחזרו תהיה נמוכה יותר מאשר כשמבקשים נתונים של קואורדינטה אחת. אם חורגים מ-512 נקודות או קואורדינטות בפרמטרים locations או path, מוחזרת התגובה INVALID_REQUEST.
תשובות לגבי גובה
לכל בקשה תקינה, שירות הגובה מחזיר תגובה בפורמט שצוין בכתובת ה-URL של הבקשה.
ElevationResponse
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | Array<ElevationResult> | מידע נוסף זמין במאמר ElevationResult. |
|
חובה | ElevationStatus | מידע נוסף זמין במאמר בנושא ElevationStatus. |
|
אופציונלי | מחרוזת |
כשהשירות מחזיר קוד סטטוס שונה מ- |
ElevationStatus
קודי סטטוס שמוחזרים על ידי השירות.
-
OK, שמציין שבקשת ה-API בוצעה בהצלחה. -
DATA_NOT_AVAILABLE, שמציין שאין נתונים זמינים למיקומים שהוזנו. -
INVALID_REQUEST, שמציין שבקשת ה-API הייתה בפורמט שגוי. OVER_DAILY_LIMITשמציין אחת מהאפשרויות הבאות:- מפתח ה-API חסר או לא תקין.
- החיוב לא הופעל בחשבון שלכם.
- חרגתם ממכסת השימוש שהגדרתם לעצמכם.
- אמצעי התשלום שסופק כבר לא תקף (לדוגמה, פג התוקף של כרטיס האשראי).
-
OVER_QUERY_LIMIT, שמציין שהמבקש חרג מהמכסה. -
REQUEST_DENIED, שמציין שה-API לא השלים את הבקשה. -
UNKNOWN_ERRORמציין שגיאה לא ידועה.
אם קוד הסטטוס הוא לא OK, יכול להיות שיהיה שדה error_message נוסף באובייקט התגובה של Elevation. השדה הזה מכיל מידע מפורט יותר על הסיבות לקוד הסטטוס שניתן.
התשובה מכילה מערך results עם הרכיבים הבאים:
ElevationResult
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | number |
גובה המיקום במטרים. |
|
חובה | LatLngLiteral |
רכיב מיקום של הנקודה שעבורה מחושבים נתוני הגובה. שימו לב שבבקשות של מסלולים, קבוצת רכיבי המיקום תכיל את הנקודות שנדגמו לאורך המסלול. מידע נוסף זמין במאמר LatLngLiteral. |
|
אופציונלי | number |
הערך שמציין את המרחק המקסימלי בין נקודות על הגרף שמהן בוצעה אינטרפולציה של הגובה, במטרים. המאפיין הזה לא יופיע אם הרזולוציה לא ידועה. חשוב לזכור שנתוני הגובה הופכים לפחות מדויקים (ערכי רזולוציה גדולים יותר) כשמעבירים כמה נקודות. כדי לקבל את ערך הגובה המדויק ביותר של נקודה, צריך לשלוח שאילתה לגביה בנפרד. |
LatLngLiteral
אובייקט שמתאר מיקום ספציפי עם קו רוחב וקו אורך במעלות עשרוניות.
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | number |
קו רוחב במעלות עשרוניות |
|
חובה | number |
קו אורך במעלות עשרוניות |
דוגמאות לשינוי מיקום של אלמנטים
בדוגמה הבאה נשלחת בקשה לקבלת הגובה של דנבר, קולורדו, "העיר בגובה מייל":
כתובת URL
https://maps.googleapis.com/maps/api/elevation/json
?locations=39.7391536%2C-104.9847034
&key=YOUR_API_KEY
cURL
curl -L -X GET 'https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536%2C-104.9847034&key=YOUR_API_KEY'
JSON
{ "results": [ { "elevation": 1608.637939453125, "location": { "lat": 39.7391536, "lng": -104.9847034 }, "resolution": 4.771975994110107, }, ], "status": "OK", }
XML
<ElevationResponse> <status>OK</status> <result> <location> <lat>39.7391536</lat> <lng>-104.9847034</lng> </location> <elevation>1608.6379395</elevation> <resolution>4.7719760</resolution> </result> </ElevationResponse>
בדוגמה הבאה מוצגות כמה תשובות (לדנבר, קולורדו ולעמק המוות, קליפורניה).
הבקשה הזו מדגימה שימוש בדגל ה-JSON output:
כתובת URL
https://maps.googleapis.com/maps/api/elevation/json
?locations=39.7391536%2C-104.9847034%7C36.455556%2C-116.866667
&key=YOUR_API_KEY
cURL
curl -L -X GET 'https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536%2C-104.9847034%7C36.455556%2C-116.866667&key=YOUR_API_KEY'
בבקשה הזו מוצג השימוש בדגל output של XML:
https://maps.googleapis.com/maps/api/elevation/xml?locations=39.7391536,-104.9847034|36.455556,-116.866667&key=YOUR_API_KEY
כדי לראות את תגובות ה-JSON וה-XML לדוגמה, לחצו על הכרטיסיות שבהמשך.
JSON
{ "results": [ { "elevation": 1608.637939453125, "location": { "lat": 39.7391536, "lng": -104.9847034 }, "resolution": 4.771975994110107, }, { "elevation": -52.79492568969727, "location": { "lat": 36.455556, "lng": -116.866667 }, "resolution": 19.08790397644043, }, ], "status": "OK", }
XML
<ElevationResponse> <status>OK</status> <result> <location> <lat>39.7391536</lat> <lng>-104.9847034</lng> </location> <elevation>1608.6379395</elevation> <resolution>4.7719760</resolution> </result> <result> <location> <lat>36.4555560</lat> <lng>-116.8666670</lng> </location> <elevation>-52.7949257</elevation> <resolution>19.0879040</resolution> </result> </ElevationResponse>
בדוגמאות הבאות נשלחות בקשות לנתוני גובה לאורך קו ישר path מהר וויטני בקליפורניה ועד לבאדווטר בקליפורניה, הנקודות הגבוהה והנמוכה ביותר בארצות הברית. אנחנו מבקשים שלוש samples, כך שהן יכללו את שתי נקודות הקצה ואת נקודת האמצע.
כתובת URL
https://maps.googleapis.com/maps/api/elevation/json ?path=36.578581%2C-118.291994%7C36.23998%2C-116.83171 &samples=3 &key=YOUR_API_KEY
cURL
curl -L -X GET 'https://maps.googleapis.com/maps/api/elevation/json?path=36.578581%2C-118.291994%7C36.23998%2C-116.83171&samples=3&key=YOUR_API_KEY'
JSON
{ "results": [ { "elevation": 4411.94189453125, "location": { "lat": 36.578581, "lng": -118.291994 }, "resolution": 19.08790397644043, }, { "elevation": 1372.8359375, "location": { "lat": 36.41150289067028, "lng": -117.5602607523847 }, "resolution": 9.543951988220215, }, { "elevation": -84.51690673828125, "location": { "lat": 36.23998, "lng": -116.83171 }, "resolution": 9.543951988220215, }, ], "status": "OK", }
XML
<ElevationResponse> <status>OK</status> <result> <location> <lat>36.5785810</lat> <lng>-118.2919940</lng> </location> <elevation>4411.9418945</elevation> <resolution>19.0879040</resolution> </result> <result> <location> <lat>36.4115029</lat> <lng>-117.5602608</lng> </location> <elevation>1372.8359375</elevation> <resolution>9.5439520</resolution> </result> <result> <location> <lat>36.2399800</lat> <lng>-116.8317100</lng> </location> <elevation>-84.5169067</elevation> <resolution>9.5439520</resolution> </result> </ElevationResponse>