تحسين ترتيب المحطات في مسارك

بشكلٍ تلقائي، تعمل طريقة 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": "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
            ]