تحسين نقاط الطرق على المسار

تحسين نقاط الطريق هي ميزة مفضّلة للمسارات تمتد إلى ComputeRoutes وتحسّن ترتيب نقاط الطريق المتوسطة في طريق المسافر، ويضمن أنهم يسافرون عبر المسار الأكثر فعالية قدر الإمكان. يتيح ComputeRoutes تنفيذ ميزة تحسين نقاط التوقف أوضاع السفر التالية:

  • القيادة
  • مركبة ذات عجلتين بمحرّك
  • ركوب درّاجات
  • المشي

لماذا يجب استخدام ميزة "تحسين نقاط التوقف"؟

عند إنشاء تطبيق يوجّه المستخدمين خلال عدد من نقاط الالتقاء في طريقهم إلى وجهة معيّنة، من المهم أن يقطع المسافر نقاط الالتقاء بالترتيب الأمثل. يضمن ذلك وصول المسافر إلى كل نقطة في أقصر وقت ممكن.

آلية العمل

تحتسب ComputeRoutes تلقائيًا المسار من خلال نقاطه بالترتيب، التي تم تقديمها فيها في الأصل. يمكنك الحصول على ComputeRoutes لإجراء تحسين عن طريق إعادة ترتيب نقاط الطريق الوسيطة إلى ترتيب أكثر كفاءة. ستتلقّى مسارًا يتضمّن نقاط طريق محسّنة إذا ضبطت حقل optimizeWaypointOrder في نص الطلب على true.

ملاحظة: يستند احتساب تحسين نقاط الطريق بشكل أساسي إلى وقت التنقّل، ولكن تأخذ الميزة أيضًا عوامل أخرى في الاعتبار، مثل المسافة وعدد المنعطفات.

الحصول على نقاط الطريق التي تم إعادة ترتيبها

للحصول على مسار يتضمن نقاط طريق تمت إعادة ترتيبها، اضبط الحقل المنطقي optimizeWaypointOrder إلى "true" في نص طلبك: ComputeRoutes أيضًا، يجب تضمين الحقل optimizedIntermediateWaypointIndex في قناع الحقل. يحتوي نص الاستجابة على ترتيب نقاط التوقف المحسَّنة في حقول optimizedIntermediateWaypointIndex.

ملاحظة: يعرض حقل optimizedIntermediateWaypointIndex قيمًا مستندة إلى الصفر.

مثال على الطلب

يوفر المثال التالي مسارًا بالقرب من مطار دبي حرم جامعي. تم تقديم نقاط طريق المسار بشكل تسلسلي في طلبك. يحتوي الطلب على مصدر ووجهة، بالإضافة إلى نوعين وسيطين نقاط الطريق.

POST /v1alpha:computeRoutes
Host: routespreferred.googleapis.com
Content-Type: application/json
X-Server-Timeout: 10
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.418956,
        "longitude": -122.160815
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.4176423,
          "longitude":-122.1102246
        }
      }
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.407689,
          "longitude": -122.1360597
        }
      }
    }
  ],
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.4032137,
        "longitude": -122.0349119
      }
    }
  },
  "travelMode": "DRIVE",
  "optimizeWaypointOrder": true,
  "routingPreference": "TRAFFIC_AWARE"}

مثال على إجابة

يمكنك العثور على فهارس نقاط الطريق الوسيطة التي تمت إعادة ترتيبها في حقول optimizedIntermediateWaypointIndex ضمن عنصر "المسارات" في نص الاستجابة. مفتاح التشفير المشفّر خطوط متعدّدة هي نفسها في Directs API ComputeRoutes

routes {
  distance_meters: 17647
  duration {
    seconds: 1866
  }
  polyline {
    encoded_polyline: "wkkcFvorhVU{@Ec@C}CG}@Mm@[}@i@y@[[g@_@Tk@BSjCgGfF|D\\Pv@Lj@@XaCTeC\\aCTs@`ByD`@k@h@e@x@Yh@GtADhBF|@G`AWpAs@lAsAdA{A`BmDr@cBmUqQoS}OyGmFiBsAgEwD}CaCU_@Og@@e@Hy@nGkO~@sBr@cBlDqIlByEp@}AjIfGnBbBHLLd@^p@~ErDfNrKrA~@DIhEeBTQ~AqDlE{KjBgE|FnEh@aAi@`A}FoE~AmD`A}BcAm@mHwFwD}CkLwIsDqCgF_EG[GKnCsDrA_BrC_CnCoBpEkD`EyClCsBcBeBIAkGkH]k@eJmKQKsAuA_@g@wCoDGQmEmFmIqROKaDuHvBkBxAgANCRH^f@v@dBHDD?`AUiBqEhBpEaATMCQYm@wAY]SIOByAfAwBjB_ByDaAwBiCeIA[c@aBqEuNOm@IQbA{c@p@aZFmCTuBLg@Tc@BUAKxOeV~Vy_@nBoDv@_BvAcDzA_EdG{RdC{HtIsY|B{Hx@mDbAuFdBsMbKsv@TaBf@}AdF{Sn@_DJq@Lo@aE`@]GUQmAmAQk@@g@RK`Ce@d@UDEPc@f@cCrAyGJs@X{AbIem@bA{JD_AIaAMg@o@{A_Ad@y@NaCLCsCK_FGI"
  }
  optimizedIntermediateWaypointIndex: 1
  optimizedIntermediateWaypointIndex: 0
}

في هذا المثال، يُرجى ملاحظة أنّ تحسين نقاط التوقف يعكس ترتيبها الأصلي.

تستغرق معالجة طلب يتضمّن نقاط طريق محسّنة وقتًا أطول من معالجة طلب مسار بسيط. وبناءً على ذلك، نوصي بتعيين مهلة أعلى لاستدعاء الطريقة من خلال ضبط قيمة لعنوان طلب X-Server-Timeout على عشرة على الأقل ثوانٍ. إذا استمر ظهور أخطاء وقت الاستراحة، يمكنك إضافة ثانية أخرى ثم إعادة المحاولة.

قيود الاستخدام

لاستخدام ميزة "تحسين نقاط الطريق"، يجب اتّباع قيود الاستخدام التالية والشروط التالية:

  • يمكنك تحديد ما يصل إلى حد الاستخدام لنقاط الطريق المتوسطة في المسار:

    • ما يصل إلى 98 نقطة طريق باستخدام إحداثيات خط العرض وخط الطول فقط
    • ما يصل إلى 25 نقطة طريق في حال تحديد أي نقاط طريق باستخدام أرقام تعريف الأماكن
  • يجب أن تكون جميع نقاط الطريق من نوع محطة توقف. لا يمكن أن يكون أيّ من نقاط التوقف من النوع عبر.

  • يجب إضافة routes.optimizedIntermediateWaypointIndex إلى حقل الترميز.

  • إذا كان طلبك يتضمن 25 نقطة وسيطة أو أكثر، يجب أن يتضمن الالتزام بالشروط التالية:

    • يجب أن تكون المسافة المجمّعة المستقيمة بين جميع نقاط الطريق أقل من 1000 كم. تضم هذه المسافة كلاً من نقطة الانطلاق الوجهة.

    • يجب أن يكون وضع التنقّل هو DRIVE.