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