U dönüşü önleme, araçların bir ziyaretin belirli teslim alma veya teslimat konumunda dönmesini engelleyen bir rota optimizasyonu özelliğidir. U dönüşü önleme ayarını yaparak aracın, ziyaret konumuna vardığında ve buradan ayrıldığında aynı yöne bakması gerektiğini belirtirsiniz.
U dönüşü önleme özelliği şu şekilde çalışır:
- U dönüşü önleme özelliğini belirli bir ziyarette ayarlarsınız.
- API, çift yönlü yollarda her iki seyahat yönünü de dikkate alır ve en uygun yolu seçer.
- API, aracın ziyaret konumunda U dönüşü yapmadan varıp ayrıldığı bir rota oluşturur. Sürücünün bu konuma ulaşmak için karşıya geçmesi gerekebilir.
Bu özellik, araç boyutu, trafik işaretleri veya normal trafik koşulları nedeniyle U dönüşü yapmanın zor ya da imkansız olduğu durumlar için idealdir.
Özellikler
U dönüşü önleme özelliği, VisitRequest nesnesinde tanımlanır.
Bu nesne, bir gönderinin pickups ve deliveries dizilerinde kullanılır.
| Mülk | Tür | Açıklama |
|---|---|---|
avoidUTurns |
boole | true olarak ayarlandığında API, aracın bu ziyaret konumunda U dönüşü yapmasını engeller. Araç, aynı yöne bakacak şekilde gelir ve ayrılır. |
Örnekler
Bu bölümde iki tür örnek ele alınmaktadır:
- U dönüşü önleme yapısını gösteren kod örnekleri.
- Özelliği içeren bir istek örneği.
Kod örnekleri
Aşağıdaki örnekte, teslim alma ve teslimat işlemlerinde avoidUTurns yapısı gösterilmektedir:
"pickups":[ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 }, "avoidUTurns": true } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 }, "avoidUTurns": true } ]
İstek örneği
Aşağıdaki örnekte, dönüşten kaçınma özelliğini içeren temel bir optimizeTours isteği gösterilmektedir. Bu istek aşağıdaki öğeleri içerir:
modelnesnesinin içinde teslim alma ve teslimat içeren bir kargo.- Aracın bu duraklarda yön değiştirmesini önlemek için hem teslim alma hem de teslimat konumlarında
avoidUTurnsözelliğitrueolarak ayarlanır.
{ "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 } ] } }
sideOfRoad ile U dönüşü yapmaktan kaçının
sideOfRoad ayrı bir özellik olsa da aracı hedefe en yakın yol tarafına yönlendirerek birçok U dönüşünü engellediği için U dönüşü önleme ile yakından ilişkilidir. Bu, aracın ziyaret konumuna belirli bir yönden yaklaşmasını zorunlu kılar ve U dönüşü yapma ihtiyacını ortadan kaldırır.
Uygulamada, ziyaret yerine ulaşmak için yolu yaya olarak geçmenin güvenli olduğu durumlarda U dönüşü önleme özelliğini kullanmanız gerekir. Yolun karşısına geçmek önerilmiyorsa veya mümkün değilse sideOfRoad değerini true olarak ayarlayın.
sideOfRoad özelliği, Waypoint nesnesinde tanımlanır.
Diğer özelliklerle etkileşim
U dönüşünden kaçınma, diğer rota özellikleriyle aşağıdaki şekillerde etkileşime girer:
- Yolun tarafı: Hem
avoidUTurnshem desideOfRoaddeğerinitrueolarak ayarlamak, aracı ziyaret konumuna en yakın yolun tarafına yönlendirirken U dönüşü yapma olasılığını biraz artırır. Ancak bu, U dönüşü önleme kısıtlamalarıyla ilgili ek karmaşıklıklara yol açar. Çoğu ziyaret konumunda, U dönüşlerini önlemek için bu özelliklerden yalnızca birini ayarlamak yeterlidir. - Yerleştirilmiş çözümler: U dönüşü önlemeyi kullandığınızda API yanıtı, yolun hangi tarafının seçildiğini kaydetmek için oluşturulan
ShipmentRoute.Visitiçinde birinjectedSolutionLocationTokeniçerir. Bu ziyareti gelecekteki bir istekte yerleştirilmiş çözüm olarak yeniden kullanırsanız bu jetonu API'ye geri iletmeniz gerekir.
Sınırlamalar
U dönüşünden kaçınma, en iyi çaba özelliğidir. API, aşağıdaki koşullarda oluşturulan bir rotaya U dönüşlerini dahil etmeye devam edebilir:
- Seyahat modu,
DRIVINGdışında bir moda ayarlanmış. - Belirli bir ziyaret konumunun varış ve ayrılış yerleri farklıdır. Bu durumda API hata döndürür.
- Ziyaret edilen yer çıkmaz sokakta olduğu için çıkışta U dönüşü yapılması gerekiyor.
- U dönüşü, ziyaret edilen gerçek konumda değil, rota üzerinde gerçekleşir.
- Manevra, API'nin U dönüşü olarak sınıflandırmadığı farklı bir yola çok keskin bir dönüş yapmaktır.