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

מפתחים באזור הכלכלי האירופי (EEA)

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

אפשר להשתמש ב-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": "Coonawarra,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,geocodingResults.intermediates.intermediateWaypointRequestIndex' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

‫Routes API מוסיף לאינדקס את נקודות הדרך שצוינו בבקשה, החל מ-0. לדוגמה:

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

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

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