אפשר לחשב את המרחק והמשך של מסלול למספר נקודות מוצא ויעד באמצעות השיטה ComputeRouteMatrix של Routes Preferred API. ComputeRouteMatrix תומך גם בשיחות gRPC של סטרימינג וגם בשיחות HTTP של REST.
בהינתן רשימה של זוגות של נקודות מוצא ויעד, הפונקציה ComputeRouteMatrix
מחשבת את המרחק ואת משך הזמן של מסלול שמתחיל בכל נקודת מוצא
ומסתיים בכל יעד. כל רכיב בפיד מתאים למידע על מסלול טיסה יחיד.
לשיטה ComputeRouteMatrix יש כמה יתרונות על פני Distance Matrix Service:
- הסטרימינג מאפשר להחזיר רכיבים לפני שכל המטריצה חושבה, וכך מקטין את זמן האחזור.
- ל-
ComputeRouteMatrixיש אפשרויות מפורטות לחישוב התנועה, שמאפשרות לכם לקבל החלטות לגבי האיזון בין איכות לזמן האחזור. - הבקשות מופעלות בעדיפות גבוהה יותר בתשתית של Google, מה שמוביל לזמינות גבוהה יותר.
- אפשר לציין כיוון ביחס לצפון (כיוון הנסיעה) ומידע על הצד של הכביש עבור ציוני דרך.
- אפשר לבקש לקבל מידע על אגרות, בנוסף למרחק המסלול ולזמן ההגעה המשוער.
הפעלת השיטה ComputeRouteMatrix
כדי להשתמש בשיטה ComputeRouteMatrix בקוד, צריך להפעיל אותה. מידע נוסף על הפעלת שיטות של Routes Preferred API זמין במאמר תחילת העבודה.
שימוש בשיטה ComputeRouteMatrix
ה-method ComputeRouteMatrix זמין דרך נקודת הקצה (endpoint) של Routes Preferred v1.
מידע מפורט יותר זמין במסמכים הבאים:
בשלבים הבאים מוסבר איך להשתמש ב-gRPC כדי לקרוא לשיטה ComputeRouteMatrix:
בודקים את ה-protobuffers הנדרשים ממאגר 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]. המערכים האלה הם מערכים עם אינדקס אפס. חשוב לשמור את סדר הרשימות של המוצא והיעד.
חישוב עמלות על נסיעה בכביש אגרה
מידע על חישוב עמלות על שיחות לטלפון נייד זמין במאמר בנושא חישוב עמלות על שיחות לטלפון נייד.
דוגמאות לחישוב עמלות על כבישי אגרה מופיעות במאמר דוגמאות לחישוב מטריצת מסלולים.