Araçlar, varsayılan olarak teslim alma veya teslimat konumuna herhangi bir yönden gelebilir ve herhangi bir yöne gidebilir. Bazı durumlarda bu, aracın ziyaret yerinde U dönüşü yapmasını zorunlu kılar. Bu da araç boyutu, konumdaki trafik işaretleri veya normal trafik koşulları nedeniyle zor ya da imkansız olabilir.
Belirli bir teslim alma veya teslimat konumunda araçların varış ve ayrılış arasında yön değiştirmesini önlemek için bu konumda avoid_u_turns
değerini doğru olarak ayarlayabilirsiniz. Bu ayar etkinleştirildiğinde araç, konuma aynı yönde gelir ve aynı yönde ayrılır. Böylece U dönüşü yapmaktan kaçınılır. Çözümleyici, iki yönlü yollarda her iki yönü de dikkate alır ve rota optimizasyonunun bir parçası olarak birini seçer.
Ayrıca, aracın yol noktasına en yakın yol tarafında varıp ayrıldığı bir rota elde etmek için side_of_road
değerini true olarak ayarlayabilirsiniz. Bu durumda araç, varış ve ayrılış arasında yönünü de değiştirmez. Aynı sonucu elde etmek için hem side_of_road
hem de avoid_u_turns
değerini doğru olarak ayarlayabilirsiniz. Ayrıntılar için Diğer özelliklerle etkileşim başlıklı makaleyi inceleyin.
Uygulamada, yol noktasını geçmek için yolu geçmenin güvenli olduğu durumlarda avoid_u_turns
kullanılmalıdır. Geçişin önerilmediği veya mümkün olmadığı durumlarda side_of_road
kullanın.
Örnek: avoid_u_turns
ile OptimizeTours
isteğinde bulunma
OptimizeTours
istekleri REST veya gRPC kullanılarak yapılabilir.
İstek göndermeden önce aşağıdaki parametreleri ortamınıza uygun değerlerle değiştirin:
- Uygulama Varsayılan Kimlik Bilgileri'nin OAuth Kullanma bölümünde açıklandığı şekilde yapılandırıldığından emin olun.
PROJECT_NUMBER_OR_ID değerini Cloud proje numaranız veya kimliğiniz olarak ayarlayın.
Aşağıdaki komut, Route Optimization API'ye
OptimizeTours
isteği gönderir ve yanıtı senkron olarak alır.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
İstek tamamlandığında yanıt mesajı alırsınız.
Diğer özelliklerle etkileşim
avoid_u_turns
,side_of_road = true
ile birlikte kullanılabilir. Bu durumda, U dönüşlerinden kaçınılır ancak çözücü, aracı yolun aynı tarafında olacak şekilde bir rota seçer. Bu, yalnızcaside_of_road = true
ayarını yapmaya benzer.- Belirli bir ziyaret isteği için
avoid_u_turns = true
olduğunda, karşılık gelen yanıttakiShipmentRoute.Visit
alanındainjected_solution_location_token
ayarlanır. Değerinin tam anlamı bir uygulama ayrıntısıdır ancak çözücü tarafından seçilen yol tarafıyla ilgili bilgileri kodlar. - Giriş isteğinin bir parçası olarak
ShipmentRoute.Visit
kullandığınızda ve buShipmentRoute.Visit
,avoid_u_turns = true
içindeVisitRequest
ile eşleştiğindeShipmentRoute.Visit
, çözücü tarafından daha önce döndürülmüş birinjected_solution_location_token
içermelidir.
Sınırlamalar
U dönüşü önleme özelliği, en iyi girişim baz alınarak sağlanır. Bazı durumlarda rota yine de U dönüşleri içerebilir:
avoid_u_turns
yalnızcaside_of_road
özelliğini destekleyen seyahat modlarında çalışır. ÖzellikleWALKING
seyahat modu için desteklenmez.avoid_u_turns
, varış ve ayrılış noktalarının aynı olmadığı teslim alma ve teslimat işlemleri için kullanılamaz.- Teslim alma veya teslimat işlemi çıkmaz bir yolda yapılıyorsa yoldan çıkmak için U dönüşü yapmak gerekir.
- Bu özelliğin amacı, teslim alma ve teslimat konumlarında U dönüşü yapılmasını önlemektir. Ara noktalar arasında U dönüşü yapılmasını önlenmez.
- Farklı bir yola çok keskin dönüşler, U dönüşü olarak kabul edilmez ve genellikle kaçınılmazdır.
Bu özellik geliştirme aşamasındayken ek sınırlamalar vardır. Özellik geliştikçe bu sınırlamaların kaldırılmasını bekliyoruz.
avoid_u_turns
,interpret_injected_solutions_using_labels
ile birlikte kullanılamaz.