מבוא
בקשת API ל-Distance Matrix נראית כך:
https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters
הערך outputFormat יכול להיות אחד מהערכים הבאים:
-
json(מומלץ) מציין פלט ב-JavaScript Object Notation (JSON). -
xmlמציין שהפלט הוא XML.
חלק מהפרמטרים הם חובה וחלקם אופציונליים. כמו בכתובות URL רגילות, כל הפרמטרים מופרדים באמצעות התו אמפרסנד (&). כל התווים השמורים (לדוגמה, סימן הפלוס "+") חייבים להיות מקודדים בכתובת ה-URL. בהמשך מפורטים הפרמטרים והערכים האפשריים שלהם.
פרמטרים נדרשים
-
יעדים גיאוגרפיים
מיקום אחד או יותר שישמשו כנקודת הסיום לחישוב מרחק וזמן הנסיעה. האפשרויות לפרמטר היעד זהות לאפשרויות לפרמטר המקור.
-
מקורות
נקודת ההתחלה לחישוב מרחק וזמן הנסיעה. אפשר לציין מיקום אחד או יותר, מופרדים באמצעות התו | (צינור), בפורמט של מזהה מקום, כתובת או קואורדינטות של קו רוחב וקו אורך:
-
מזהה מקום: אם מציינים מזהה מקום, צריך להוסיף לפניו את התחילית
place_id:. -
כתובת: אם מעבירים כתובת, השירות מבצע גיאו-קידוד של המחרוזת וממיר אותה לקואורדינטות של קו רוחב וקו אורך כדי לחשב את המרחק. יכול להיות שהקואורדינטה הזו שונה מזו שמוחזרת על ידי Geocoding API, למשל, כניסה לבניין במקום המרכז שלו.
הערה: עדיף להשתמש במזהי מקומות מאשר בכתובות או בקואורדינטות של קו אורך וקו רוחב. שימוש בקואורדינטות תמיד יגרום לנקודה להיצמד לכביש הקרוב ביותר לקואורדינטות האלה – יכול להיות שזה לא יהיה שער הכניסה לנכס, או אפילו כביש שיוביל במהירות או בבטחה ליעד. השימוש בכתובת יספק את המרחק למרכז הבניין, ולא לכניסה לבניין.
- קואורדינטות: אם מעבירים קואורדינטות של קו רוחב/אורך הן יוצמדו לכביש הקרוב ביותר. מומלץ להעביר מזהה מקום. אם אתם מעבירים קואורדינטות, ודאו שאין רווח בין ערכי קו הרוחב וקו האורך.
-
קודי Plus צריכים להיות בפורמט של קוד גלובלי או קוד מורכב. צריך להשתמש בפורמט של Plus Codes כמו בדוגמה הבאה (סימני הפלוס מקודדים ל- %2B ורווחים מקודדים ל- %20):
-
הקוד הגלובלי הוא קידומת אזורית בת 4 תווים וקוד מקומי בן 6 תווים או יותר (
849VCWC8+R9מקודד ל-849VCWC8%2BR9). -
קוד מורכב הוא קוד מקומי באורך 6 תווים או יותר
עם מיקום מפורש (
CWC8+R9 Mountain View, CA, USAמקודד ל-CWC8%2BR9%20Mountain%20View%20CA%20USA).
-
הקוד הגלובלי הוא קידומת אזורית בת 4 תווים וקוד מקומי בן 6 תווים או יותר (
-
קו פוליגון מקודד לחלופין, אפשר לספק קבוצה מקודדת של קואורדינטות באמצעות אלגוריתם של קו פוליגון מקודד. השיטה הזו שימושית במיוחד אם יש לכם מספר גדול של נקודות מוצא, כי כתובת ה-URL קצרה משמעותית כשמשתמשים בקו פוליגוני מקודד.
-
לפני קווים פוליגוניים מקודדים צריך להוסיף את הקידומת
enc:ואחריה נקודתיים:. לדוגמה:origins=enc:gfo}EtohhU: -
אפשר גם לכלול כמה קווים שבורים מקודדים, ולהפריד ביניהם באמצעות התו של קו אנכי
|. לדוגמה:origins=enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:|enc:udymA{~bxM:
-
לפני קווים פוליגוניים מקודדים צריך להוסיף את הקידומת
-
מזהה מקום: אם מציינים מזהה מקום, צריך להוסיף לפניו את התחילית
פרמטרים אופציונליים
-
arrival_time
מציין את זמן ההגעה המועדף למסלול לתחבורה ציבורית, בשניות מאז חצות, 1 בינואר 1970 UTC. אפשר לציין
departure_timeאוarrival_time, אבל לא את שניהם. הערה: הערך שלarrival_timeצריך להיות מספר שלם. -
להימנע
יכול להיות שהמרחקים יחושבו בהתאם להגבלות מסוימות. ההגבלות מצוינות באמצעות הפרמטר avoid, וארגומנט לפרמטר הזה שמציין את ההגבלה שיש להימנע ממנה. ההגבלות הבאות נתמכות:
-
tollsמציין שהמסלול המחושב צריך להימנע מכבישי אגרה ומגשרים עם אגרה. -
highwaysמציין שהמסלול המחושב צריך להימנע מכבישים מהירים. -
ferriesמציין שהמסלול המחושב צריך להימנע ממעבורות. -
indoorמציין שהמסלול המחושב צריך להימנע משימוש במדרגות בתוך מבנים במסלולי הליכה ומסלול לתחבורה ציבורית.
אפשר לבקש מסלול שבו נמנעים משילוב כלשהו של כבישי אגרה, כבישים מהירים ומעבורות, על ידי העברת שתי ההגבלות לפרמטר avoid. לדוגמה
avoid=tolls|highways|ferries.הערה: הוספת הגבלות לא מונעת הצגת מסלולים שכוללים את התכונה המוגבלת, אלא מעדיפה מסלולים נוחים יותר. -
-
departure_time
מציינת את שעת היציאה המועדפת. אפשר לציין את השעה כמספר שלם בשניות מאז חצות, 1 בינואר 1970, שעון UTC. אם מציינים ערך של
departure_timeשגדול מ-9999-12-31T23:59:59.999999999Z, ה-API יחזיר את הערך 9999-12-31T23:59:59.999999999Z.departure_timeלחלופין, אפשר לציין ערך של now, שיגדיר את שעת ההמראה לשעה הנוכחית (בדיוק של השנייה הקרובה ביותר). יכול להיות שזמן ההמראה יצוין בשני מקרים:-
לגבי בקשות שבהן אמצעי התחבורה הוא תחבורה ציבורית: אפשר לציין אחת מהאפשרויות
departure_timeאוarrival_time. אם לא מציינים את שני הזמנים, ברירת המחדל שלdeparture_timeהיא הזמן הנוכחי (כלומר, ברירת המחדל של זמן ההמראה היא הזמן הנוכחי). -
לגבי בקשות שבהן אמצעי התחבורה הוא נהיגה: אפשר לציין את
departure_timeכדי לקבל מסלול ומשך נסיעה (שדה התגובה: duration_in_traffic) שמתחשבים בתנאי התנועה. התאריךdeparture_timeצריך להיות התאריך הנוכחי או תאריך עתידי. התאריך לא יכול להיות בעבר.
הערה: אם לא מציינים את שעת היציאה, בחירת המסלול והמשך שלו מבוססים על רשת הכבישים ועל מצב התנועה הממוצע שלא תלוי בשעה. התוצאות של בקשה מסוימת עשויות להשתנות לאורך זמן בגלל שינויים ברשת הכבישים, עדכונים בממוצע מצב התנועה והאופי המבוזר של השירות. התוצאות עשויות להשתנות גם בין מסלולים כמעט שווים בכל זמן או תדירות.הערה: בקשות ל-Distance Matrix עם הפרמטריםdeparture_timeו-mode=drivingמוגבלות ל-100 רכיבים לכל היותר בכל בקשה. מספר המקורות כפול מספר היעדים מגדיר את מספר הרכיבים. -
לגבי בקשות שבהן אמצעי התחבורה הוא תחבורה ציבורית: אפשר לציין אחת מהאפשרויות
-
language
השפה שבה יוחזרו התוצאות.
- כאן אפשר לעיין ברשימת השפות הנתמכות. Google מעדכנת לעיתים קרובות את השפות הנתמכות, ולכן יכול להיות שהרשימה הזו לא מלאה.
-
אם לא מספקים את
language, ה-API מנסה להשתמש בשפה המועדפת שצוינה בכותרתAccept-Language. - ה-API עושה כמיטב יכולתו כדי לספק כתובת רחוב שקלה לקריאה גם למשתמש וגם לתושבים המקומיים. כדי להשיג את המטרה הזו, הוא מחזיר כתובות רחוב בשפה המקומית, בתעתיק לכתב שהמשתמש יכול לקרוא אם צריך, בהתאם לשפה המועדפת. כל שאר הכתובות מוחזרות בשפה המועדפת. כל רכיבי הכתובת מוחזרים באותה שפה, שנבחרת מתוך הרכיב הראשון.
- אם שם לא זמין בשפה המועדפת, ה-API משתמש בהתאמה הקרובה ביותר.
- לשפה המועדפת יש השפעה קטנה על קבוצת התוצאות שממשק ה-API בוחר להחזיר, ועל הסדר שבו הן מוחזרות. כלי להמרת כתובות לקואורדינטות (geocoder) מפרש קיצורים בצורה שונה בהתאם לשפה, כמו קיצורים של סוגי רחובות או מילים נרדפות שעשויות להיות תקפות בשפה אחת אבל לא בשפה אחרת. לדוגמה, utca ו-tér הן מילים נרדפות למילה 'רחוב' בהונגרית.
-
מצב
כדי לחשב את המרחקים ואת מסלולי הנסיעה, אפשר לציין את אמצעי התחבורה שבו רוצים להשתמש. כברירת מחדל, נעשה שימוש במצב
DRIVING. כברירת מחדל, המסלולים מחושבים כמסלולי נסיעה. אלה אמצעי התחבורה שנתמכים:-
driving(ברירת מחדל) מציין מסלולי נסיעה רגילים או מרחק באמצעות רשת הכבישים. -
walkingבקשות לקבלת מסלול הליכה או מרחק הליכה באמצעות שבילים להולכי רגל ומדרכות (אם יש כאלה). -
bicyclingמבקש מסלול או מרחק לרכיבה על אופניים באמצעות שבילי אופניים ורחובות מועדפים (אם יש כאלה). -
transitמבקש מסלול או מרחק באמצעות מסלולי תחבורה ציבורית (במקומות שבהם האפשרות זמינה). אם מגדירים את המצב לתחבורה ציבורית, אפשר לצייןdeparture_timeאוarrival_time. אם לא מציינים את השעה,departure_timeמוגדר כברירת מחדל לשעה הנוכחית (כלומר, שעת ההמראה מוגדרת כברירת מחדל לשעה הנוכחית). אפשר גם להוסיףtransit_modeו/אוtransit_routing_preference.
הערה: לפעמים מסלולי הליכה ורכיבה על אופניים לא כוללים שבילים ברורים להולכי רגל או לרוכבי אופניים, ולכן התוצאות של המסלולים האלה יכללו אזהרות שצריך להציג למשתמש.הערה: נסיעות בתחבורה ציבורית זמינות עד 7 ימים אחורה או עד 100 ימים קדימה, בכפוף לזמינות המידע על התחבורה הציבורית שסופק על ידי ספקי הנתונים. לוחות הזמנים של התחבורה הציבורית משתנים לעיתים קרובות, יכול להיות שיהיו שינויים בנסיעות בתחבורה הציבורית לאורך זמן, ואין ערובה לכך שנקבל תוצאות עקביות לגבי תחזיות לטווח ארוך. -
-
אזור
קוד האזור, שמוגדר כערך ccTLD (דומיין ברמה העליונה) באורך שני תווים. רוב קודי ה-ccTLD זהים לקודי ISO 3166-1, אבל יש כמה יוצאים מן הכלל. לדוגמה, ה-ccTLD של בריטניה הוא uk (.co.uk), אבל קוד ISO 3166-1 שלה הוא gb (טכנית, עבור הישות 'ממלכת בריטניה הגדולה וצפון אירלנד').
-
traffic_model
מציינת את ההנחות שמשמשות לחישוב הזמן בפקקים. ההגדרה הזו משפיעה על הערך שמוחזר בשדה duration_in_traffic בתגובה, שמכיל את הזמן המשוער בפקקים על סמך ממוצעים היסטוריים. אפשר לציין את הפרמטר
traffic_modelרק במסלול נסיעה, אם הבקשה כוללת את הפרמטרdeparture_time. הערכים האפשריים של הפרמטר הזה הם:-
best_guess(ברירת מחדל) מציין שהערך של duration_in_traffic שמוחזר צריך להיות האומדן הכי טוב של זמן הנסיעה, בהתחשב בנתונים הידועים על מצב התנועה ההיסטורי ועל התנועה בזמן אמת. החשיבות של נתוני התנועה בזמן אמת גדלה ככל שהתאריך שלdeparture_timeקרוב יותר להיום. -
pessimisticמציין שהערך של duration_in_traffic שמוחזר צריך להיות ארוך יותר מזמן הנסיעה בפועל ברוב הימים, אבל יכול להיות שבימים מסוימים עם תנאי תנועה גרועים במיוחד הערך הזה יהיה גבוה יותר. -
optimisticמציין שהערך של duration_in_traffic שמוחזר צריך להיות קצר יותר מזמן הנסיעה בפועל ברוב הימים, אבל יכול להיות שבימים מסוימים עם תנאי תנועה טובים במיוחד, זמן הנסיעה יהיה קצר יותר מהערך הזה.
ערך ברירת המחדל של
best_guessיספק את התחזיות הכי שימושיות לרוב המוחלט של תרחישי השימוש. יכול להיות שתחזית זמן הנסיעהbest_guessתהיה קצרה יותר מ-optimistic, או לחלופין ארוכה יותר מ-pessimistic, בגלל האופן שבו מודל התחזיתbest_guessמשלב מידע על מצב התנועה בזמן אמת. -
-
transit_mode
מציינים אמצעי תחבורה מועדפים אחד או יותר. אפשר לציין את הפרמטר הזה רק כשמבקשים מסלול לתחבורה ציבורית. הפרמטר תומך בארגומנטים הבאים:
-
busמציין שהמסלול המחושב צריך לתת עדיפות לנסיעה באוטובוס. -
subwayמציין שהמסלול המחושב צריך לתת עדיפות לנסיעה ברכבת תחתית. -
trainמציין שחישוב המסלול צריך לתת עדיפות לנסיעה ברכבת. -
tramמציין שהמסלול המחושב צריך לתת עדיפות לנסיעה בחשמלית וברכבת קלה. -
railמציין שהמסלול המחושב צריך לתת עדיפות לנסיעה ברכבת, בחשמלית, ברכבת קלה וברכבת תחתית. הפונקציה הזו שוות ערך ל-transit_mode=train|tram|subway.
-
-
transit_routing_preference
הגדרת העדפות למסלולי תחבורה ציבורית. באמצעות הפרמטר הזה, אפשר להטות את האפשרויות שמוחזרות, במקום לקבל את הנתיב הטוב ביותר שמוגדר כברירת מחדל ונבחר על ידי ה-API. אפשר לציין את הפרמטר הזה רק כשמבקשים מסלול לתחבורה ציבורית. הפרמטר תומך בארגומנטים הבאים:
-
less_walkingמציין שהמסלול המחושב צריך להעדיף הליכה מוגבלת. -
fewer_transfersמציין שהמסלול המחושב צריך להעדיף מספר מוגבל של החלפות.
-
-
יחידות
מציינת את מערכת היחידות שבה יש להשתמש כשמציגים תוצאות.
הערה: הגדרת מערכת היחידות הזו משפיעה רק על הטקסט שמוצג בשדות המרחק. שדות המרחק מכילים גם ערכים שתמיד מבוטאים במטרים.
דוגמאות לבקשות
בדוגמה הזו נעשה שימוש בקואורדינטות של קו רוחב וקו אורך כדי לציין את קואורדינטות היעד:
כתובת URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626 &origins=40.6655101%2C-73.89188969999998 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626&key=YOUR_API_KEY'
בדוגמה הזו נעשה שימוש בקודי OLC כדי לציין את קואורדינטות היעד:
כתובת URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=San%20Francisco &origins=849VCWC8%2BR9 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=849VCWC8%2BR9&destinations=San%20Francisco&key=YOUR_API_KEY'
בדוגמה הזו מוצגת אותה בקשה באמצעות קו פוליגוני מקודד:
כתובת URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A &origins=40.6655101%2C-73.89188969999998 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A&key=YOUR_API_KEY'
מידע על מצב התנועה
המידע על התנועה משמש כשכל התנאים הבאים מתקיימים (אלה התנאים שנדרשים כדי לקבל את השדה duration_in_traffic בתגובה של מטריצת מרחקים):
- הפרמטר
modeשל הנסיעה הואdriving, או שלא צוין (drivingהוא מצב הנסיעה שמוגדר כברירת מחדל). - הבקשה כוללת פרמטר
departure_timeתקין. אפשר להגדיר אתdeparture_timeלשעה הנוכחית או לשעה עתידית. התאריך לא יכול להיות בעבר.
אפשר לכלול בבקשה את הפרמטר traffic_model כדי לציין את ההנחות שבהן יש להשתמש כשמחשבים את הזמן שיידרש להגעה ליעד בתנאי תנועה.
כתובת ה-URL הבאה יוזמת בקשה למטריצת מרחקים למרחקי נסיעה בין בוסטון, מסצ'וסטס או צ'רלסטאון, מסצ'וסטס, לבין לקסינגטון, מסצ'וסטס וקונקורד, מסצ'וסטס. הבקשה כוללת שעת המראה, ועומדת בכל הדרישות להחזרת השדה duration_in_traffic בתגובה של מטריצת המרחקים.
כתובת URL
https://maps.googleapis.com/maps/api/distancematrix/json ?departure_time=now &destinations=Lexington%2CMA%7CConcord%2CMA &origins=Boston%2CMA%7CCharlestown%2CMA &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Boston%2CMA%7CCharlestown%2CMA&destinations=Lexington%2CMA%7CConcord%2CMA&departure_time=now&key=YOUR_API_KEY'
JSON
{ "destination_addresses": ["Lexington, MA, USA", "Concord, MA, USA"], "origin_addresses": ["Boston, MA, USA", "Charlestown, Boston, MA, USA"], "rows": [ { "elements": [ { "distance": { "text": "33.3 km", "value": 33253 }, "duration": { "text": "27 mins", "value": 1620 }, "duration_in_traffic": { "text": "34 mins", "value": 2019 }, "status": "OK", }, { "distance": { "text": "41.5 km", "value": 41491 }, "duration": { "text": "33 mins", "value": 1981 }, "duration_in_traffic": { "text": "39 mins", "value": 2342 }, "status": "OK", }, ], }, { "elements": [ { "distance": { "text": "31.1 km", "value": 31100 }, "duration": { "text": "26 mins", "value": 1543 }, "duration_in_traffic": { "text": "29 mins", "value": 1754 }, "status": "OK", }, { "distance": { "text": "39.3 km", "value": 39338 }, "duration": { "text": "32 mins", "value": 1904 }, "duration_in_traffic": { "text": "35 mins", "value": 2077 }, "status": "OK", }, ], }, ], "status": "OK", }
XML
OK Boston, MA, USA Charlestown, Boston, MA, USA Lexington, MA, USA Concord, MA, USA |
OK 1620 27 mins 33253 33.3 km 2018 34 mins OK 1981 33 mins 41491 41.5 km 2342 39 mins |
OK 1543 26 mins 31100 31.1 km 1759 29 mins OK 1904 32 mins 39338 39.3 km 2077 35 mins
התאמות של הצעות המחיר למיקום גיאוגרפי
אתם יכולים להשתמש במחרוזות לשינוי מיקום כדי לציין איך נהגים צריכים להתקרב למיקום מסוים. למשל, אפשר להשתמש במחרוזת side_of_road כדי לציין באיזה צד של הכביש צריך לנסוע, או לציין כיוון ביחס לצפון כדי להראות את כיוון הנסיעה הנכון.
הגדרת מסלולים מחושבים שחייבים לעבור בצד מסוים של הכביש
כשמציינים מיקום, אפשר להשתמש בקידומת side_of_road: כדי לבקש שהמסלול המחושב יעבור בצד הכביש שאליו נקודת הביניים מוטה. לדוגמה, הבקשה הזו תחזיר את המרחק למסלול ארוך, כך שהרכב יגיע לצד הדרך שאליו הוטה נקודת הביניים:
כתובת URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=side_of_road%3A37.7663444%2C-122.4412006 &origins=37.7680296%2C-122.4375126 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=37.7680296%2C-122.4375126&destinations=side_of_road%3A37.7663444%2C-122.4412006&key=YOUR_API_KEY'
כשמשתמשים ב-side_of_road: עם קווים פוליגוניים מקודדים, ההרחבה חלה על כל מיקום לאורך הקו הפוליגוני. לדוגמה, שני היעדים בבקשה הזו משתמשים בפרמטר:
כתובת URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A &origins=San%20Francisco%20City%20hall &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=San%20Francisco%20City%20hall&destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A&key=YOUR_API_KEY'
אפשר להשתמש במגביל side_of_road: רק עם ההגבלה הזו:
- הערך של הפרמטר
modeשמשויך לתחום 'נסיעות' הואdriving, או שלא צוין (drivingהוא מצב הנסיעה שמוגדר כברירת מחדל).
הגדרת כיוון מסוים למסלולים מחושבים
כשמציינים מיקום, אפשר לבקש שהמסלול המחושב יעבור דרך המיקום בכיוון מסוים. הכותרת הזו מצוינת עם הקידומת heading=X:, כאשר X הוא ערך של מספר שלם בין 0 (כולל) ל-360 (לא כולל). כותרת של 0 מציינת צפון, 90 מציינת מזרח, וכן הלאה בכיוון השעון. לדוגמה, במסלול המחושב של הבקשה הזו, יוצאים מנקודת המוצא לכיוון מזרח ואז מבצעים פניית פרסה:
כתובת URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=37.773245%2C-122.469502 &origins=heading%3D90%3A37.773279%2C-122.468780 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=heading%3D90%3A37.773279%2C-122.468780&destinations=37.773245%2C-122.469502&key=YOUR_API_KEY'
אפשר להשתמש במילת ההתאמה heading=X: רק עם ההגבלות הבאות:
- הפרמטר
modeשל נסיעות הואdriving,bicyclingאו שלא צוין (drivingהוא מצב הנסיעה שמוגדר כברירת מחדל). - המשנה
side_of_roadלא צוין לאותו מיקום. - המיקום מצוין באמצעות ערך של קו רוחב וקו אורך. אסור להשתמש ב-
headingעם כתובות, מזהי מקומות או קווי פוליגון מקודדים.
בקשות ותשובות של Distance Matrix
בהמשך מוצגת דוגמה לבקשת HTTP שבה נדרשים המרחק והמשך של הנסיעה מוונקובר, קולומביה הבריטית, קנדה ומסיאטל, וושינגטון, ארה"ב לסן פרנסיסקו, קליפורניה, ארה"ב ולויקטוריה, קולומביה הבריטית, קנדה.
כתובת URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=San%20Francisco%7CVictoria%20BC &language=fr-FR &mode=bicycling &origins=Vancouver%20BC%7CSeattle &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver%20BC%7CSeattle&destinations=San%20Francisco%7CVictoria%20BC&mode=bicycling&language=fr-FR&key=YOUR_API_KEY'
הבקשה הזו תחזיר ארבעה אלמנטים – שני מקורות כפול שני יעדים:
| ונקובר לסן פרנסיסקו | ונקובר לוויקטוריה |
| מסיאטל לסן פרנסיסקו | סיאטל לוויקטוריה |
התוצאות מוחזרות בשורות, כשכל שורה מכילה מקור אחד שמשויך לכל יעד.
JSON
{ "destination_addresses": ["San Francisco, Californie, États-Unis", "Victoria, BC, Canada"], "origin_addresses": ["Vancouver, BC, Canada", "Seattle, Washington, États-Unis"], "rows": [ { "elements": [ { "distance": { "text": "1 712 km", "value": 1711765 }, "duration": { "text": "3 jours 16 heures", "value": 318119 }, "status": "OK", }, { "distance": { "text": "140 km", "value": 139695 }, "duration": { "text": "6 heures 49 minutes", "value": 24567 }, "status": "OK", }, ], }, { "elements": [ { "distance": { "text": "1 452 km", "value": 1451704 }, "duration": { "text": "3 jours 2 heures", "value": 266680 }, "status": "OK", }, { "distance": { "text": "146 km", "value": 146500 }, "duration": { "text": "2 heures 53 minutes", "value": 10374 }, "status": "OK", }, ], }, ], "status": "OK", }
XML
OK Vancouver, BC, Canada Seattle, Washington, États-Unis San Francisco, Californie, États-Unis Victoria, BC, Canada |
OK 318119 3 jours 16 heures 1711765 1 712 km OK 24567 6 heures 49 minutes 139695 140 km |
OK 266680 3 jours 2 heures 1451704 1 452 km OK 10374 2 heures 53 minutes 146500 146 km
DistanceMatrixResponse
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | Array<string> |
מערך של כתובות שמוחזר על ידי ה-API מהבקשה המקורית. בדומה לפונקציה |
|
חובה | Array<string> |
מערך של כתובות שמוחזר על ידי ה-API מהבקשה המקורית. הפורמט של הנתונים האלה נקבע על ידי הכלי להמרת כתובות לקואורדינטות (geocoder), והם מותאמים לשפה שמועברת עם הבקשה באמצעות פרמטר השפה. התוכן הזה נועד לקריאה כמו שהוא. אל תנתחו את הכתובות המעוצבות באופן פרוגרמטי. |
|
חובה | Array<DistanceMatrixRow> |
מערך של רכיבים, שכל אחד מהם מכיל רכיב מידע נוסף זמין במאמר DistanceMatrixRow. |
|
חובה | DistanceMatrixStatus |
התגובה מכילה את הסטטוס של הבקשה, ועשויה להכיל מידע על ניפוי באגים שיעזור לכם להבין למה הבקשה נכשלה. מידע נוסף זמין במאמר DistanceMatrixStatus. |
|
אופציונלי | מחרוזת |
מחרוזת שמכילה את הטקסט הקריא של כל השגיאות שנתקלו בהן במהלך עיבוד הבקשה. |
DistanceMatrixStatus
קודי סטטוס שמוחזרים על ידי השירות.
-
OKמציין שהתשובה מכילה תוצאה תקינה. -
INVALID_REQUESTמציין שהבקשה שסופקה לא תקינה. -
MAX_ELEMENTS_EXCEEDEDמציין שמספר המוצרים שמקורם ויעדם חורג מהמגבלה לכל שאילתה. -
MAX_DIMENSIONS_EXCEEDEDמציין שמספר מקורות או היעדים חורג מהמגבלה לכל שאילתה. -
הסמל
OVER_DAILY_LIMITמציין אחת מהאפשרויות הבאות:- מפתח ה-API חסר או לא תקין.
- החיוב לא הופעל בחשבון שלך.
- הייתה חריגה ממכסת שימוש שהוגדרה על ידי המשתמש.
- אמצעי התשלום שצוין לא תקף יותר (לדוגמה, תוקף כרטיס האשראי פג).
-
OVER_QUERY_LIMITמציין שהשירות קיבל יותר מדי בקשות מהאפליקציה שלכם בפרק הזמן המותר. -
REQUEST_DENIEDמציין שהשירות דחה את השימוש בשירות Distance Matrix על ידי האפליקציה שלכם. -
UNKNOWN_ERRORמציין שלא ניתן היה לעבד בקשה של מטריצת מרחקים בגלל שגיאת שרת. יכול להיות שהבקשה תצליח אם תנסו שוב.
DistanceMatrixRow
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | מערך<DistanceMatrixElement> |
כש-Distance Matrix API מחזיר תוצאות, הוא ממקם אותן במערך שורות בפורמט JSON. גם אם לא מוחזרות תוצאות (למשל, אם המקורות או היעדים לא קיימים), עדיין מוחזר מערך ריק. השורות מסודרות לפי הערכים בפרמטר המקור של הבקשה. כל שורה תואמת למקור, וכל רכיב בשורה הזו תואם לזיווג של המקור עם ערך יעד. כל מערך שורות מכיל רשומה אחת או יותר של רכיבים, שבתורה מכילה את המידע על זוג אחד של מקור ויעד. מידע נוסף זמין במאמר DistanceMatrixElement. |
DistanceMatrixElement
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | DistanceMatrixElementStatus |
סטטוס של הרכיב. מידע נוסף זמין במאמר בנושא DistanceMatrixElementStatus. |
|
אופציונלי | TextValueObject |
המרחק הכולל של המסלול הזה, במטרים (ערך) וכטקסט. הערך הטקסטואלי משתמש במערכת היחידות שצוינה בפרמטר היחידה של הבקשה המקורית, או באזור המקור. מידע נוסף זמין במאמר בנושא TextValueObject. |
|
אופציונלי | TextValueObject |
משך הנסיעה במסלול הזה, בשניות (בשדה הערך) ובטקסט. הייצוג הטקסטואלי עובר לוקליזציה בהתאם לפרמטר השפה של השאילתה. מידע נוסף זמין במאמר בנושא TextValueObject. |
|
אופציונלי | TextValueObject |
משך הזמן שיידרש לנסיעה במסלול הזה, על סמך מצב התנועה הנוכחי וההיסטורי. בפרמטר הבקשה
מידע נוסף זמין במאמר בנושא TextValueObject. |
|
אופציונלי | מחיר הכרטיס |
אם השדה הזה מופיע, הוא מכיל את מחיר הכרטיס הכולל (כלומר, העלויות הכוללות של הכרטיס) במסלול הזה. המאפיין הזה מוחזר רק לבקשות של תחבורה ציבורית, ורק לספקי תחבורה שמידע על התעריפים שלהם זמין. מידע נוסף זמין במאמר בנושא תעריפים. |
מחיר הכרטיס
המחיר הכולל של הכרטיס למסלול.
{
"currency" : "USD",
"value" : 6,
"text" : "$6.00"
}
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | מחרוזת |
קוד מטבע בהתאם לתקן ISO 4217 שמציין את המטבע שבו הסכום מוצג. |
|
חובה | מחרוזת |
סכום התעריף הכולל, בפורמט של השפה המבוקשת. |
|
חובה | number |
סכום מחיר הכרטיס הכולל, במטבע שצוין. |
DistanceMatrixElementStatus
-
OKמציין שהתשובה מכילה תוצאה תקינה. -
NOT_FOUNDמציין שלא ניתן לבצע גיאו-קידוד של המקור או היעד של צמד המיקומים הזה. -
ZERO_RESULTSמציין שלא נמצא מסלול בין נקודת המוצא ליעד. -
MAX_ROUTE_LENGTH_EXCEEDEDמציין שהמסלול המבוקש ארוך מדי ואי אפשר לעבד אותו.
TextValueObject
אובייקט שמכיל ערך מספרי וייצוג טקסטואלי שלו בפורמט.
| שדה | חובה | סוג | תיאור |
|---|---|---|---|
|
חובה | מחרוזת |
ערך מחרוזת. |
|
חובה | number |
ערך מספרי. |