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

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

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

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

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

הפעלת השיטה ComputeRouteMatrix

לפני שתוכלו להשתמש בשיטה ComputeRouteMatrix בקוד שלכם, אתם צריכים להפעיל אותו. למידע נוסף על הפעלת Routes Preferred API במאמר תחילת העבודה.

שימוש ב-method ComputeRouteMatrix

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

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

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

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

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

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