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 yöndeki seyahati de dikkate alır ve en uygun yolu seçer.
- API, aracın ziyaret konumunda U dönüşü yapmadan geldiği ve ayrıldığı bir rota oluşturur. Sürücünün bu konuma ulaşmak için yolu 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 |
boolean | true olarak ayarlandığında API, aracın bu ziyaret konumunda U dönüşü yapmasını engeller. Araç aynı yöne bakarak 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, geri dönüşten kaçınma özelliğini içeren temel bir optimizeTours isteği gösterilmektedir. Bu istek aşağıdaki öğeleri içerir:
modelnesnesi 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 ayarlayabilirsiniz.
sideOfRoad özelliği, Waypoint nesnesinde tanımlanır.
Diğer özelliklerle etkileşim
U dönüşü önleme özelliği, diğer rota oluşturma özellikleriyle aşağıdaki şekillerde etkileşime girer:
- Yolun kenarı: Hem
avoidUTurnshem desideOfRoadayarlarınıtrueolarak belirlemek, aracı ziyaret konumuna en yakın yolun kenarına yönlendirirken U dönüşü yapmaktan kaçınma olasılığını biraz artırır. Ancak bu durumda, U dönüşü önleme kısıtlamalarıyla ilgili ek karmaşıklıklar ortaya çıkar. Çoğu ziyaret konumunda, U dönüşü yapmamak için bu özelliklerden yalnızca birini ayarlamak yeterlidir. - Enjekte edilen çözümler: U dönüşü önleme özelliğini 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üşü önleme, en iyi girişim temel alınarak sunulan bir özelliktir. API, aşağıdaki koşullarda oluşturulan bir rotaya U dönüşlerini dahil etmeye devam edebilir:
- Ulaşım şekli,
DRIVINGdışında bir moda ayarlanmış. - Belirli bir ziyaret konumunun varış ve ayrılış konumları farklıdır. Bu durumda API bir hata döndürür.
- Ziyaret, çıkmaz bir yolda bulunuyor ve çıkmak için U dönüşü yapılması gerekiyor.
- U dönüşü, ziyaret edilen gerçek konumda değil, rota üzerinde gerçekleşir.
- Bu manevra, API'nin U dönüşü olarak sınıflandırmadığı, farklı bir yola çok keskin bir dönüş yapmaktır.