بشكلٍ تلقائي، يمكن للمركبات الوصول إلى موقع استلام أو تسليم من أي اتجاه، ثم المغادرة في أي اتجاه. في بعض الحالات، يضطر سائق المركبة إلى إجراء لفة كاملة في موقع الزيارة، وقد يكون ذلك صعبًا أو مستحيلاً بسبب حجم المركبة أو علامات المرور في الموقع أو ظروف حركة المرور المعتادة.
لمنع المركبات من تغيير الاتجاه بين وقت الوصول ومغادرة
موقع استلام أو تسليم معيّن، يمكنك ضبط avoid_u_turns على
true لهذا الموقع الجغرافي. في ظل هذا الإعداد، ستصل المركبة إلى الموقع الجغرافي وتغادره
بالاتجاه نفسه، ما يتجنّب إجراء الانعطاف بعكس الاتجاه. في الطرق ذات الاتجاهَين،
سيأخذ الحلّ كلا الاتجاهَين في الاعتبار وسيختار أحدهما كجزء من تحسين
المسار.
يمكنك أيضًا ضبط side_of_road على true للحصول على مسار تصل فيه المركبة
وتغادر من جانب الطريق الأقرب إلى نقطة المرور. في
هذا الحالة، لا تغيّر المركبة أيضًا الاتجاه بين وقت الوصول ووقت
المغادرة. من الممكن ضبط كلّ من side_of_road وavoid_u_turns على true
لتحقيق النتيجة نفسها. لمعرفة التفاصيل، يُرجى الاطّلاع على التفاعل مع
الميزات الأخرى.
من الناحية العملية، يجب استخدام الرمز avoid_u_turns عندما يكون من الآمن عبور الطريق للوصول إلى نقطة الطريق. استخدِم side_of_road عندما لا يُنصح بالعبور أو عندما يكون العبور
غير ممكن.
مثال: تقديم طلب OptimizeTours باستخدام avoid_u_turns
يمكن إرسال طلبات OptimizeTours باستخدام REST أو gRPC.
قبل تقديم طلب، استبدِل المَعلمات التالية بقيم مناسبة لبيئة موقعك الإلكتروني:
- تأكَّد من ضبط بيانات الاعتماد التلقائية للتطبيق على النحو الموضّح في استخدام OAuth.
اضبط PROJECT_NUMBER_OR_ID على رقم أو رقم تعريف مشروعك على Cloud.
يُرسِل الأمر التالي طلبًا من النوع
OptimizeToursإلى واجهة برمجة التطبيقات Route Optimization API ويتلقّى ردًا متزامنًا.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. في هذه الحالة، يتم تجنُّب الالتفافات، ولكنّ أداة الحلّ تختار مسارًا تكون المركبة فيه على جانب الطريق نفسه الذي يقع عليه نقطة الطريق، تمامًا مثل ضبط الإعدادside_of_road = trueوحده. - عندما يكون
avoid_u_turns = trueلطلب زيارة معيّن، يتم ضبط الحقلinjected_solution_location_tokenفيShipmentRoute.Visitفي الردّ المقابل. إنّ المعنى الدقيق ل قيمته هو تفاصيل التنفيذ، ولكنه يُشفِّر المعلومات حول جانب الطريق الذي اختاره المُحلّل. - عند استخدام
ShipmentRoute.Visitكجزء من طلب الإدخال، إذا كانShipmentRoute.Visitيتوافق معVisitRequestالذي فيهavoid_u_turns = true، يجب أن يحتويShipmentRoute.Visitعلىinjected_solution_location_tokenتم إرجاعه سابقًا من قِبل أداة الحل.
القيود
نبذل قصارى جهدنا لتجنّب إجراء الانعطاف إلى الخلف. في بعض الحالات، قد يظل المسار يحتوي على انعطافات عكسية:
- لا تعمل ميزة
avoid_u_turnsإلا مع أوضاع التنقّل المتوافقة معside_of_road. وعلى وجه التحديد، لا يمكن استخدامها في وضع التنقّلWALKING. - لا يمكن استخدام
avoid_u_turnsلعمليات الاستلام والتسليم التي لا يتطابق فيها وقت الوصول والمغادرة. - عندما يكون مكان الاستلام أو التسليم على طريق مسدود، يجب إجراء انعطاف عكسي لمغادرة الطريق.
- ويهدف ذلك إلى تجنُّب إجراء انعطافات عكسية في مواقع الاستلام والتسليم. لا يتم تجنُّب الانعطافات العكسية بين نقاط الطريق.
- لا تُعتبر المنعطفات الحادة جدًا التي تؤدي إلى طريق مختلفة منعطفات عكسية، ولن يتم عادةً تجنُّبها.
هناك قيود إضافية أثناء تطوير هذه الميزة. ونتوقع أن يتم رفع هذه القيود مع تطور الميزة.
- لا يمكن استخدام
avoid_u_turnsمعinterpret_injected_solutions_using_labels.