Method: computeRoutes

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

הערה: בשיטה הזו צריך לציין מסכה של שדה תגובה בקלט. אפשר לספק את המסכה של שדה התגובה באמצעות פרמטר כתובת ה-URL $fields או fields, או באמצעות כותרת HTTP/gRPC‏ X-Goog-FieldMask (ראו הפרמטרים והכותרות הזמינים של כתובות URL). הערך הוא רשימה של נתיבי שדות שמופרדים בפסיקים. במסמכי התיעוד המפורטים מוסבר איך ליצור את נתיבי השדות.

לדוגמה, בשיטה הזו:

  • אנונימיזציה של כל השדות הזמינים (לבדיקה ידנית): X-Goog-FieldMask: *
  • מסכת שדות של משך הנסיעה, המרחק והקו הפוליגוני ברמת המסלול (דוגמה להגדרה בסביבת הייצור): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Google ממליצה לא להשתמש במסכת השדה של התשובה עם התו הכללי לחיפוש (*), או לציין את מסכת השדה ברמה העליונה (routes), כי:

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

בקשת HTTP

POST https://routespreferred.googleapis.com/v1:computeRoutes

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

ייצוג ב-JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "units": enum (Units),
  "optimizeWaypointOrder": boolean
}
שדות
origin

object (Waypoint)

חובה. ציון דרך במקור.

destination

object (Waypoint)

חובה. נקודת ציון ליעד.

intermediates[]

object (Waypoint)

זה שינוי אופציונלי. קבוצה של נקודות דרך לאורך המסלול (לא כולל נקודות קצה), לצורך עצירה או נסיעה חולפת. יש תמיכה ב-25 ציוני דרך ברמת הביניים.

travelMode

enum (RouteTravelMode)

זה שינוי אופציונלי. מציין את אמצעי התחבורה.

routingPreference

enum (RoutingPreference)

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

polylineQuality

enum (PolylineQuality)

זה שינוי אופציונלי. מציין את ההעדפה שלכם לגבי איכות הקווים הפוליגונים.

polylineEncoding

enum (PolylineEncoding)

זה שינוי אופציונלי. מציין את קידוד הפוליגון המועדף.

departureTime

string (Timestamp format)

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

חותמת זמן בפורמט UTC 'Zulu' של RFC3339, עם רזולוציה של ננו-שנייה ועד תשע ספרות עשרוניות. דוגמאות: "2014-10-02T15:01:23Z" ו-"2014-10-02T15:01:23.045123456Z".

computeAlternativeRoutes

boolean

זה שינוי אופציונלי. השדה מציין אם לחשב מסלולים חלופיים בנוסף למסלול. לא יוחזרו מסלולים חלופיים לבקשות שיש בהן נקודות ציון ביניים.

routeModifiers

object (RouteModifiers)

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

languageCode

string

זה שינוי אופציונלי. קוד השפה לפי BCP-47, למשל 'en-US' או 'sr-Latn'. מידע נוסף זמין במאמר מזהה הלוקאל של Unicode. במאמר שפות תמיכה אפשר למצוא את רשימת השפות הנתמכות. אם לא מציינים את הערך הזה, שפת התצוגה נובעת מהמיקום של בקשת המסלול.

units

enum (Units)

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

optimizeWaypointOrder

boolean

אם האפשרות optimizeWaypointOrder מוגדרת כ-true, המערכת תנסה לשנות את הסדר של נקודות הדרך הביניים שצוינו כדי למזער את העלות הכוללת של המסלול. אם אחת מנקודות הדרך הביניים היא דרך נקודה אחרת, הבקשה נכשלת. כדי למצוא את ההזמנה החדשה, צריך להשתמש ב-ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index. אם אין בקשה ל-routes.optimized_intermediate_waypoint_index בכותרת X-Goog-FieldMask, הבקשה תיכשל. אם המדיניות optimizeWaypointOrder מוגדרת כ-False, ComputeRoutesResponse.optimized_intermediate_waypoint_index ריקה.

גוף התשובה

אם הפעולה מצליחה, גוף התגובה מכיל מופע של ComputeRoutesResponse.

היקפי הרשאה

נדרש היקף הרשאות OAuth הבא:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

למידע נוסף, ראו סקירה כללית על OAuth 2.0.