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

تحسين نقاط الطريق هي ميزة مفضّلة للمسارات تمتد إلى 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.