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

כברירת מחדל, Routes API Compute 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'

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