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