U dönüşü önleme

U dönüşü yapmaktan kaçınma, teslim alma ve teslimat nesnelerindeki "ShipmentModel.Shipment" içinde yer alır.

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:

  1. U dönüşü önleme özelliğini belirli bir ziyarette ayarlarsınız.
  2. API, çift yönlü yollarda her iki seyahat yönünü de dikkate alır ve en uygun yolu seçer.
  3. 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:

  • model nesnesinin 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ği true olarak 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 avoidUTurns hem de sideOfRoad değerini true olarak 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.Visit içinde bir injectedSolutionLocationToken iç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, DRIVING dışı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.