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/v1alpha: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)

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

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