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

"تحسين نقاط الطريق" هي إحدى ميزات "المسارات المفضّلة" التي تعمل على توسيع نطاق 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 ضمن كائن المسارات في نص الاستجابة. إنّ الخطوط المتعددة المشفّرة هي نفسها المستخدمة في Directions 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 نقطة طريق وسيطة أو أكثر، يجب أن يلتزم أيضًا بالشروط التالية:

    • يجب أن تكون المسافة المتراكمة المستقيمة بين جميع نقاط الطريق أقل من 1,000 كم. وتشمل هذه المسافة كلاً من نقطة الانطلاق والوجهة.

    • يجب أن يكون وضع السفر DRIVE.