אפשר לחשב את המרחק ואת משך הזמן של מסלול למספר נקודות מוצא ויעד באמצעות השיטה ComputeRouteMatrix
של Routes Preferred API. ComputeRouteMatrix
תומך גם בשיחות gRPC של סטרימינג וגם בשיחות HTTP של REST.
בהינתן רשימה של זוגות של נקודות מוצא ויעד, הפונקציה ComputeRouteMatrix
מחשבת את המרחק ואת משך הזמן של מסלול שמתחיל בכל נקודת מוצא
ומסתיים בכל יעד. כל רכיב בפיד מתאים למידע על מסלול טיסה יחיד.
לשיטה ComputeRouteMatrix
יש כמה יתרונות על פני Distance Matrix Service:
- הזרמה מאפשרת להחזיר רכיבים לפני שכל המטריצה חושבה, וכך מקטינה את זמן האחזור.
- ל-
ComputeRouteMatrix
יש אפשרויות מפורטות לחישוב התנועה, שמאפשרות לכם לקבל החלטות לגבי האיזון בין איכות לזמן אחזור. - הבקשות מופעלות בעדיפות גבוהה יותר בתשתית של Google, מה שמוביל לזמינות גבוהה יותר.
- אפשר לציין כותרת (כיוון הנסיעה) ומידע על הצד של הכביש עבור נקודות ציון.
- אפשר לבקש לקבל מידע על אגרות, בנוסף למרחק המסלול ולזמן ההגעה המשוער.
הפעלת השיטה ComputeRouteMatrix
כדי להשתמש בשיטה ComputeRouteMatrix
בקוד, צריך להפעיל אותה. מידע נוסף על הפעלת שיטות של Routes Preferred API זמין במאמר תחילת העבודה.
שימוש בשיטה ComputeRouteMatrix
השיטה ComputeRouteMatrix
זמינה דרך נקודת הקצה (endpoint) של Routes Preferred v1.
מידע מפורט יותר זמין במסמכים הבאים:
בשלבים הכלליים הבאים מוסבר איך להשתמש ב-gRPC כדי לקרוא לשיטה ComputeRouteMatrix
:
בודקים את פרוטוקולי ה-Protobuf הנדרשים ממאגר googleapis:
https://github.com/googleapis/googleapis/tree/master/google/maps/routes
שימו לב: מערכות בנייה מסוימות, כמו Go, עשויות לבצע את הפעולה הזו באופן אוטומטי.
בעזרת השפה המועדפת וערכת כלי הבנייה, יוצרים את קוד ה-Protobuffer הרלוונטי.
יוצרים את הבקשה. צריך לשלוח עם הבקשה שני פריטי מטא-נתונים:
- הערך של X-Goog-Api-Key צריך להיות מפתח ה-API שלכם.
השדה X-Goog-Fieldmask צריך להיות מוגדר לרשימה מופרדת בפסיקים של השדות שנדרשים מהתגובה. לדוגמה, X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. אפשר להשתמש בתו הכללי לחיפוש (*) כדי לציין את כל השדות, אבל לא מומלץ לעשות את זה. אפשר להשתמש בתו הכללי כדי לבדוק ולהבין את תגובת ה-API, אבל צריך לציין באופן מפורש את השדות שרוצים במסכת השדות בקוד הייצור.
מידע נוסף על אופן יצירת המחרוזת של מסכת השדות זמין בכתובת https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. שימו לב: השבתה של שדות שאתם לא צריכים יכולה להפחית את זמן האחזור, כי יכול להיות שהשדות האלה דורשים חישוב נוסף. זמן האחזור יישאר יציב אם תציינו את השדות שאתם צריכים ותוסיפו בהמשך שדות חדשים שדורשים יותר חישובים.
שולחים את הבקשה אל
routespreferred.googleapis.com:443
.חובה להשתמש בפרוטוקול TLS.
דוגמאות לשימוש בשיטה ComputeRouteMatrix
מופיעות במאמר דוגמאות לחישוב מטריצת מסלולים (בטא).
תכונה ייחודית של שיטת ComputeRouteMatrix
היא שאפשר להחזיר קודי שגיאה לכל הסטרימינג או לרכיבים בודדים. לדוגמה, החיבור לסטרימינג מחזיר שגיאה אם הבקשה לא תקינה (למשל, אם אין לה מקורות). עם זאת, אם שגיאה חלה רק על כמה רכיבים בזרם (לדוגמה, הגדרת מזהה מקום לא חוקי למקור), רק הרכיבים שמושפעים מהשגיאה יכילו קודי שגיאה.
אין ערובה לכך שהרכיבים שמוחזרים על ידי הזרם יוחזרו בסדר כלשהו. לכן, כל רכיב מכיל origin_index
ו-destination_index
. לגבי המקורות והיעדים שצוינו בבקשה, המקור של המסלול שווה ל-origins[origin_index]
עבור רכיב נתון, והיעד של המסלול שווה ל-destinations[destination_index]
. המערכים האלה הם מערכים עם אינדקס שמתחיל מאפס. חשוב לשמור את סדר הרשימות של המוצא והיעד.
חישוב עמלות על נסיעה בכביש אגרה
מידע על חישוב עמלות על שיחות לטלפון זמין במאמר חישוב עמלות על שיחות לטלפון.
דוגמאות לחישוב עמלות על כבישי אגרה מופיעות במאמר דוגמאות לחישוב מטריצת מסלולים.