تحسين نقاط المسار هي ميزة في 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 ضمن عنصر المسارات في نص الاستجابة. إنّ الخطوط المتعدّدة المرمّزة هي نفسها المستخدَمة في 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 نقطة على المسار إذا حدّدت أي نقاط على المسار باستخدام أرقام تعريف الأماكن
يجب أن تكون جميع النقاط على المسار من النوع stopover. لا يمكن أن تكون أي من نقاط المسار من النوع via.
يجب إضافة
routes.optimizedIntermediateWaypointIndexإلى قناع الحقل.إذا كان طلبك يحتوي على 25 نقطة وسيطة على المسار أو أكثر، يجب أن يلتزم أيضًا بالشروط التالية:
يجب أن تكون المسافة المستقيمة المتراكمة بين جميع النقاط على المسار أقل من 1,000 كيلومتر، وتشمل هذه المسافة كلاً من نقطة الانطلاق والوجهة.
يجب أن تكون وسيلة النقل هي DRIVE.