Teslim alma ve teslimat konumlarında U dönüşü yapmaktan kaçının

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ızca side_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ıttaki ShipmentRoute.Visit alanında injected_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 bu ShipmentRoute.Visit, avoid_u_turns = true içinde VisitRequest ile eşleştiğinde ShipmentRoute.Visit, çözücü tarafından daha önce döndürülmüş bir injected_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ızca side_of_road özelliğini destekleyen seyahat modlarında çalışır. Özellikle WALKING 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.