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

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

אתם יכולים להגדיר מחדש את העצירות לפי סדר יעיל יותר כדי שה-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'

ה-Routes 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
            ]