بشكل تلقائي، يمكن للمركبات الوصول إلى موقع استلام أو تسليم من أي اتجاه، ثم المغادرة في أي اتجاه. في بعض الحالات، يؤدي ذلك إلى إجبار المركبة على الانعطاف على شكل حرف U في الموقع الجغرافي للزيارة، وهو ما قد يكون صعبًا أو مستحيلاً بسبب حجم المركبة أو إشارات المرور في الموقع الجغرافي أو ظروف حركة المرور المعتادة.
لمنع المركبات من تغيير اتجاهها بين الوصول والمغادرة في موقع جغرافي محدّد للاستلام أو التسليم، يمكنك ضبط قيمة avoid_u_turns
على "صحيح" لهذا الموقع الجغرافي. بموجب هذا الإعداد، ستصل المركبة إلى الموقع الجغرافي وتغادره بالاتجاه نفسه، ما يمنعها من الدوران على شكل حرف U. في الطرق ذات الاتجاهين، سيأخذ برنامج الحلّ كلا الاتجاهين في الاعتبار ويختار أحدهما كجزء من عملية تحسين المسار.
يمكنك أيضًا ضبط side_of_road
على "صحيح" للحصول على مسار تصل فيه المركبة وتغادر من جانب الطريق الأقرب إلى نقطة الطريق. في هذه الحالة، لا تغيّر المركبة اتجاهها أيضًا بين وقت الوصول ووقت المغادرة. يمكن ضبط كل من side_of_road
وavoid_u_turns
على "صحيح"
لتحقيق النتيجة نفسها. لمزيد من التفاصيل، يُرجى الاطّلاع على التفاعل مع الميزات الأخرى.
من الناحية العملية، يجب استخدام avoid_u_turns
عندما يكون من الآمن عبور الطريق للوصول إلى نقطة الطريق. استخدِم side_of_road
عندما لا يُنصح بالعبور أو عندما يكون غير ممكن.
مثال: تقديم طلب OptimizeTours
باستخدام avoid_u_turns
يمكن تقديم طلبات OptimizeTours
باستخدام REST أو gRPC.
قبل تقديم طلب، استبدِل المَعلمات التالية بقيم مناسبة لبيئتك:
- تأكَّد من إعداد بيانات الاعتماد التلقائية للتطبيق كما هو موضّح في استخدام OAuth.
اضبط قيمة PROJECT_NUMBER_OR_ID على رقم مشروعك أو رقم تعريفه على السحابة الإلكترونية.
يرسل الأمر التالي طلب
OptimizeTours
إلى واجهة برمجة التطبيقات Route Optimization ويتلقّى ردًا بشكل متزامن.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 }, "avoidUTurns": true } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 }, "avoidUTurns": true } ] } ], "vehicles": [ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ], } } EOM
بعد اكتمال الطلب، ستتلقّى رسالة رد.
التفاعل مع الميزات الأخرى
- يمكن استخدام
avoid_u_turns
معside_of_road = true
. في هذه الحالة، يتم تجنُّب المنعطفات على شكل حرف U، ولكن يختار الحلّ مسارًا يكون فيه المسار على الجانب نفسه من الطريق الذي تقع فيه نقطة الطريق، على غرار ضبطside_of_road = true
فقط. - عندما تكون قيمة
avoid_u_turns = true
لطلب زيارة معيّن هي true، تكون قيمة الحقلinjected_solution_location_token
في الردّ المقابل هي true.ShipmentRoute.Visit
إنّ المعنى الدقيق لقيمة هذا الحقل هو تفصيل خاص بالتنفيذ، ولكنّه يشفّر المعلومات حول جانب الطريق الذي اختاره محلّل المشاكل. - عند استخدام
ShipmentRoute.Visit
كجزء من طلب الإدخال، إذا كانShipmentRoute.Visit
يتوافق معVisitRequest
الذي يتضمّنavoid_u_turns = true
، يجب أن يحتويShipmentRoute.Visit
علىinjected_solution_location_token
سبق أن عرضه برنامج حلّ الألغاز.
القيود
يتم بذل أقصى جهد لتجنُّب الانعطافات على شكل حرف U. في بعض الحالات، قد يظل المسار يتضمّن منعطفات على شكل حرف U:
- لا يعمل
avoid_u_turns
إلا مع وسائل النقل التي تتيح استخدامside_of_road
. على وجه التحديد، لا يتوافق مع وضع السفرWALKING
. - لا يمكن استخدام
avoid_u_turns
لعمليات الاستلام والتسليم التي لا تتطابق فيها نقطتا المغادرة والوصول. - عندما يكون مكان الاستلام أو التسليم في طريق مسدود، يجب إجراء انعطاف على شكل حرف U لمغادرة الطريق.
- تهدف هذه الميزة إلى تجنُّب الانعطافات على شكل حرف U في مواقع الاستلام والتسليم. لا يتم تجنُّب المنعطفات على شكل حرف U بين نقاط الطريق.
- لا تُعتبر المنعطفات الحادة جدًا إلى طريق آخر منعطفات على شكل حرف U، ولن يتم تجنُّبها بشكل عام.
هناك قيود إضافية أثناء تطوير هذه الميزة. ونتوقّع أن يتم رفع هذه القيود مع تطوّر الميزة.
- لا يمكن استخدام
avoid_u_turns
معinterpret_injected_solutions_using_labels
.