חישוב מטריצת מסלולים

אפשר לחשב את המרחק ואת משך המסלול במספר מקורות ויעדים באמצעות השיטה ComputeRouteMatrix ב-Roututes Preferred API. ב-ComputeRouteMatrix יש תמיכה גם בקריאות gRPC בסטרימינג וגם בקריאות HTTP ל-REST.

בהתאם לרשימת צמדים של מוצא ויעד, ComputeRouteMatrix מחשב את המרחק ומשך הזמן של מסלול, שמתחיל בכל נקודת מוצא ומסתיים בכל יעד. כל רכיב בזרם תואם למידע של מסלול יחיד.

לשיטה ComputeRouteMatrix יש כמה יתרונות על פני שירות מטריצת המרחק:

  • סטרימינג מאפשר להחזיר רכיבים לפני חישוב כל המטריצה, וכך מקצר את זמן האחזור.
  • ב-ComputeRouteMatrix יש אפשרויות פרטניות לחישוב תעבורת הנתונים, שמאפשרות לקבל החלטות על זמן האחזור של האיכות.
  • הבקשות מוצגות בעדיפות גבוהה יותר בתשתית של Google, ולכן הזמינות שלהן גבוהה יותר.
  • אפשר לציין את כיוון הנסיעה (כיוון הנסיעה) ואת המידע מהצד השני של הכביש עבור ציוני דרך.
  • תוכלו לבקש שיחזרו אליכם מידע על כבישי האגרה, כולל מרחק המסלול וזמן ההגעה המשוער.

הפעלת השיטה ComputeRouteMatrix

לפני שמשתמשים ב-method ComputeRouteMatrix בקוד, צריך להפעיל אותה. למידע נוסף על הפעלת methods Preferred API, ראו תחילת העבודה.

שימוש בשיטת ComputeRouteMatrix

ה-method ComputeRouteMatrix זמינה דרך נקודת הקצה v1 של 'מסלולים מועדפים'.

מידע מפורט יותר זמין במסמכים הבאים:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST : https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

השלבים הכלליים הבאים מתארים איך להשתמש ב-gRPC כדי לקרוא ל-method ComputeRouteMatrix:

  1. בידקו את האב-טיפוסים הנדרשים ממאגר googleapis:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    שימו לב שמערכות build מסוימות, כמו Go, עשויות לבצע את הפעולה הזו באופן אוטומטי.

  2. באמצעות השפה המועדפת עליכם והקבוצה של כלי ה-build, יוצרים את הקוד הרלוונטי של שרת האחסון הזמני.

  3. יוצרים את הבקשה. יחד עם הבקשה, יש לשלוח שני קטעי מטא-נתונים נדרשים:

    • יש להגדיר את 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. שימו לב שאם משביתים שדות שאתם לא צריכים, זה עלול לקצר את זמן האחזור, כי יכול להיות שתצטרכו לבצע פעולות חישוב נוספות בשדות האלה. זמן האחזור יישאר יציב אם תציינו את השדות הדרושים, ושדות חדשים שמחייבים עוד חישוב יתווספו מאוחר יותר.

  4. שולחים את הבקשה אל routespreferred.googleapis.com:443.חובה להשתמש בפרוטוקול TLS.

לדוגמאות לשימוש בשיטה ComputeRouteMatrix, ראו דוגמאות לחישוב מטריצת מסלול (בטא).

אחד הפיצ'רים הבולטים של ה-method ComputeRouteMatrix הוא שאפשר להחזיר קודי שגיאה לכל השידור או לרכיבים בודדים. לדוגמה, החיבור לשידור מחזיר שגיאה אם הבקשה לא תקינה (למשל, אין לה מקורות). עם זאת, אם שגיאה חלה רק על כמה רכיבים של מקור הנתונים (לדוגמה, הגדרת מזהה מקום לא חוקי של מקור), רק הרכיבים שמושפעים מהשגיאה יכילו קודי שגיאה.

אין ערובה לכך שהרכיבים שהוחזרו על ידי הסטרימינג יוחזרו בכל סדר שהוא. לכן כל רכיב מכיל origin_index ו-destination_index. למקורות וליעדים שצוינו בבקשה, נקודת המוצא של המסלול שווה ל-origins[origin_index] לרכיב נתון ויעד המסלול מקביל ל-destinations[destination_index]. המערכים האלה נוספים אפס באינדקס. חשוב לאחסן את ההזמנות של רשימות המקור והיעד.

מתבצע חישוב של עמלות האגרה

למידע על חישוב עמלות האגרה, ראו חישוב עמלות האגרה.

לדוגמאות של חישוב עמלות האגרה, ראו דוגמאות למטריצת מסלולים.