אופטימיזציה של סדר העצירות במסלול

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

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

כדי לבצע אופטימיזציה של ציוני דרך

  1. חשוב לוודא שהשדה via לא מוגדר ל-true באף אחת מציוני הדרך במסלול, לדוגמה: {"address": "Clare,SA", "via": true}. למידע נוסף על ציוני דרך ברמת הביניים, ראו ציון ציוני דרך ברמת ביניים.

  2. מוודאים שהפרמטר routing_preference לא מוגדר לערך TRAFFIC_AWARE_OPTIMAL.

  3. הגדרה של optimize_waypoint_order לערך 'true' לדוגמה:

    "optimizeWaypointOrder": "true",
    
  4. מציינים את השדה routes.optimizedIntermediateWaypointIndex במסכה של השדות:

    REST

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

הסבר על האופטימיזציה של הסדר של ציון הדרך

כך ה-Routes API מבצע אופטימיזציה של סדר ציוני הדרך במסלול:

  1. מוסיף אוטומטית את ציוני הדרך לאינדקס על סמך הסדר שציינתם בבקשה, החל מ-0.

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

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

דוגמה

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

curl -X POST -H 'content-type: application/json' -d ' {
  "origin": {
    "address": "Adelaide,SA"
  },
  "destination": {
    "address": "Adelaide,SA"
  },
  "intermediates": [
    {"address": "Barossa+Valley,SA"},
    {"address": "Clare,SA"},
    {"address": "Connawarra,SA"},
    {"address": "McLaren+Vale,SA"}
  ],
  "travelMode": "DRIVE",
  "optimizeWaypointOrder": "true"
  }' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

ה-Routs API מוסיף לאינדקס את נקודות הביניים שצוינו בבקשה, החל מ-0. לדוגמה:

0    {"address": "Barossa+Valley,SA"},
1    {"address": "Clare,SA"},
2    {"address": "Connawarra,SA"},
3    {"address": "McLaren+Vale,SA"}

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

"optimizedIntermediateWaypointIndex": [
                3,
                2,
                0,
                1
            ]