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

ميزة تحسين نقاط المرور هي ميزة في Routes Preferred توسّع نطاق 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 ضمن الكائن routes في نص الاستجابة. الخط المتعدد المرمّز هو نفسه في 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.