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