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 ardından herhangi bir yöne gidebilir. Bazı durumlarda bu durum, aracın ziyaret konumunda U dönüşü yapmasına neden olur. Bu da araç boyutu, konumdaki trafik işaretleri veya normal trafik koşulları nedeniyle zor veya imkansız olabilir.

Belirli bir teslim alma veya teslimat konumu için araçların varış ve kalkış arasında yön değiştirmesini önlemek istiyorsanız bu konum için avoid_u_turns değerini doğru olarak ayarlayabilirsiniz. Bu ayarda araç, aynı yöne doğru gelip aynı yöne doğru ayrılır ve böylece U dönüşü yapmaktan kaçınır. Çözümleyici, iki yönlü yollarda her iki yönü de dikkate alır ve rota optimizasyonu kapsamında bir yönü seçer.

Aracın, yol noktasına en yakın yol kenarından gelip ayrıldığı bir rota elde etmek için side_of_road değerini doğru olarak da ayarlayabilirsiniz. Bu durumda araç, varış ve kalkış arasında yönünü de değiştirmez. Aynı sonuca ulaşmak için hem side_of_road hem de avoid_u_turns değerini true olarak ayarlayabilirsiniz. Ayrıntılar için Diğer özelliklerle etkileşim bölümüne bakın.

Uygulamada, yol noktasına ulaşmak için yolun karşı tarafına geçmenin güvenli olduğu durumlarda avoid_u_turns kullanılmalıdır. Geçiş yapılması istenmiyorsa veya mümkün değilse side_of_road simgesini kullanın.

Örnek: avoid_u_turns ile OptimizeTours isteği gönderme

OptimizeTours istekleri REST veya gRPC kullanılarak gönderilebilir.

İstek göndermeden önce aşağıdaki parametreleri ortamınıza uygun değerlerle değiştirin:

  • Uygulama Varsayılan Kimlik Bilgileri'ni OAuth'u kullanma bölümünde açıklandığı şekilde yapılandırdığınızdan emin olun.
  • PROJECT_NUMBER_OR_ID değerini Cloud proje numaranız veya kimliğiniz olarak ayarlayın.

    Aşağıdaki komut, RouteOptimization API'ye bir OptimizeTours isteği gönderir ve senkronize olarak yanıt 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 bir 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üşü yapılmaz ancak çözümleyici, side_of_road = true değerinin tek başına ayarlanmasına benzer şekilde aracın yol noktasınla aynı tarafta olduğu bir rota seçer.
  • Belirli bir ziyaret isteği için avoid_u_turns = true olduğunda, ilgili yanıttaki ShipmentRoute.Visit alanında injected_solution_location_token alanı ayarlanır. Değerinin tam anlamı bir uygulama ayrıntısıdır ancak çözücü tarafından seçilen yolun tarafı hakkındaki bilgileri kodlar.
  • Giriş isteği kapsamında bir ShipmentRoute.Visit kullandığınızda, bu ShipmentRoute.Visit avoid_u_turns = true değerinin bulunduğu bir VisitRequest'a karşılık geliyorsa 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üşünden kaçınma işlemi, elimizden geldiğince yapılır. Bazı durumlarda rota yine de U dönüşü 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 kalkış noktalarının aynı olmadığı teslim alma ve teslim etme işlemleri için kullanılamaz.
  • Teslimat veya teslim alma işlemi çıkmaz sokakta olduğunda, yoldan çıkmak için U dönüşü yapmak gerekir.
  • Bu özelliğin amacı, teslim alma ve teslimat noktalarında U dönüşü yapmaktan kaçınmaktır. Yol işaretleri arasında U dönüşü yapılması engellenmez.
  • Farklı bir yola yapılan çok keskin dönüşler U dönüşü olarak kabul edilmez ve genellikle bu dönüşlerden kaçınılmaz.

Bu özellik geliştirme aşamasında olduğundan ek sınırlamalar vardır. Özellik geliştikçe bu kısıtlamaların kaldırılmasını bekliyoruz.