Method: computeRoutes

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

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

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

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

computeAlternativeRoutes

boolean

מציינת אם לחשב מסלולים חלופיים בנוסף למסלול.

routeModifiers

object (RouteModifiers)

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

languageCode

string

זה שינוי אופציונלי. קוד השפה BCP-47, כמו 'en-US' או 'sr-Latn'. מידע נוסף זמין בכתובת http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. במאמר שפות תמיכה אפשר למצוא את רשימת השפות הנתמכות. אם לא מציינים את הערך הזה, המערכת מסיקה את שפת התצוגה מהמיקום של בקשת המסלול.

units

enum (Units)

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

optimizeWaypointOrder

boolean

אם הפרמטר OptimizeWaypointOrder מוגדר כ-True, מתבצע ניסיון לשנות את הסדר של נקודות הביניים שצוינו כדי לצמצם את העלות הכוללת של המסלול. אם אחת מנקודות הביניים היא דרך ציון דרך, הבקשה תיכשל. משתמשים ב-ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index כדי למצוא את הסדר החדש. אם לא נשלחת בקשה ל-Paths.Optimization_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.