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

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