Kehrtwende

Die Vermeidung von U-Turns ist in `ShipmentModel.Shipment` in den Abhol- und Zustellungsobjekten enthalten.

Die Vermeidung von Wendemanövern ist eine Funktion zur Routenoptimierung, mit der verhindert wird, dass Fahrzeuge am jeweiligen Abhol- oder Lieferort eines Besuchs wenden. Wenn Sie die Vermeidung von Wendemanövern festlegen, geben Sie an, dass das Fahrzeug bei der Ankunft und Abfahrt an einem Besuchsort in dieselbe Richtung zeigen soll.

Die Vermeidung von Wendemanövern funktioniert so:

  1. Sie legen die Property zur Vermeidung von Wendemanövern für einen bestimmten Besuch fest.
  2. Die API berücksichtigt beide Fahrtrichtungen auf zweispurigen Straßen und wählt den optimalsten Weg aus.
  3. Die API generiert eine Route, auf der das Fahrzeug ankommt und abfährt, ohne am Besuchsort zu wenden. Der Fahrer muss möglicherweise die Straße überqueren, um diesen Ort zu erreichen.

Diese Property ist ideal für Situationen, in denen ein Wendemanöver aufgrund der Fahrzeuggröße, der Verkehrszeichen oder des normalen Verkehrsaufkommens schwierig oder unmöglich ist.

Properties

Die Property zur Vermeidung von Wendemanövern wird im VisitRequest Objekt definiert. Dieses Objekt wird in den pickups und deliveries Arrays einer Sendung verwendet.

Attribut Typ Beschreibung
avoidUTurns boolean Wenn diese Option auf true gesetzt ist, verhindert die API, dass das Fahrzeug an diesem Besuchsort wendet. Das Fahrzeug kommt an und fährt ab, wobei es in dieselbe Richtung zeigt.

Beispiele

In diesem Abschnitt werden zwei Arten von Beispielen behandelt:

  • Codebeispiele, die die Struktur der Vermeidung von Wendemanövern veranschaulichen.
  • Ein Beispiel für eine Anfrage, die die Funktion enthält.

Codebeispiele

Das folgende Beispiel zeigt die Struktur vonavoidUTurns bei einer Abholung und einer Lieferung:

"pickups":[
  {
    "arrivalLocation": {
      "latitude": 37.42506261000996,
      "longitude": -122.09535511930135
    },
    "avoidUTurns": true
  }
],
"deliveries":[
  {
    "arrivalLocation": {
      "latitude": 37.42421503206021,
      "longitude": -122.09526063135228
    },
    "avoidUTurns": true
  }
]

Beispielanfrage

Das folgende Beispiel zeigt eine einfache optimizeTours Anfrage, die die Vermeidung von Wendemanövern enthält. Diese Anfrage enthält die folgenden Elemente:

  • Eine Sendung mit einer Abholung und einer Lieferung im Objekt model.
  • Die avoidUTurns Property ist sowohl für den Abhol- als auch für den Lieferort auf true gesetzt, um zu verhindern, dass das Fahrzeug an diesen Haltestellen die Richtung ändert.
  {
    "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
        }
      ]
    }
  }

Wendemanöver mit sideOfRoad vermeiden

`sideOfRoad` ist zwar eine separate Funktion, steht aber in engem Zusammenhang mit der Vermeidung von Wendemanövern, da viele Wendemanöver verhindert werden, indem das Fahrzeug auf die Straßenseite geleitet wird, die dem Ziel am nächsten liegt.sideOfRoad Dadurch wird das Fahrzeug gezwungen, sich einem Besuchsort aus einer bestimmten Richtung zu nähern, sodass kein Wendemanöver erforderlich ist.

In der Praxis sollten Sie die Vermeidung von Wendemanövern verwenden, wenn es sicher ist, die Straße zu Fuß zu überqueren, um zum Besuchsort zu gelangen. Wenn das Überqueren der Straße nicht empfohlen oder nicht möglich ist, sollten Sie stattdessen sideOfRoad auf true setzen.

Die sideOfRoad Property wird in einem Waypoint Objekt definiert.

Interaktion mit anderen Funktionen

Die Vermeidung von Wendemanövern interagiert auf folgende Weise mit anderen Routingfunktionen:

  • Straßenseite: Wenn Sie sowohl avoidUTurns als auch sideOfRoad auf true setzen, erhöht sich die Wahrscheinlichkeit, dass ein Wendemanöver vermieden wird, während das Fahrzeug auf die Straßenseite geleitet wird, die dem Besuchsort am nächsten liegt. Dadurch wird jedoch die Komplexität aufgrund der Einschränkungen der Vermeidung von Wendemanövern erhöht. Für die meisten Besuchsorte reicht es aus, nur eine dieser Properties festzulegen, um Wendemanöver zu vermeiden.
  • Eingefügte Lösungen: Wenn Sie die Vermeidung von Wendemanövern verwenden, enthält die API-Antwort ein injectedSolutionLocationToken im generierten ShipmentRoute.Visit, um aufzuzeichnen, welche Straßenseite ausgewählt wurde. Wenn Sie diesen Besuch jemals als eingefügte Lösung in einer zukünftigen Anfrage wiederverwenden, müssen Sie dieses Token an die API zurückgeben.

Beschränkungen

Die Vermeidung von Wendemanövern ist eine Best-Effort-Funktion. Die API kann unter den folgenden Bedingungen weiterhin Wendemanöver in eine generierte Route einbeziehen:

  • Der Reisemodus ist auf einen anderen Modus als DRIVING gesetzt.
  • Die Ankunfts- und Abfahrtsorte für einen bestimmten Besuchsort sind unterschiedlich. In diesem Fall gibt die API einen Fehler zurück.
  • Der Besuchsort liegt an einer Sackgasse, sodass ein Wendemanöver erforderlich ist, um wieder herauszufahren.
  • Das Wendemanöver erfolgt entlang der Route und nicht am eigentlichen Besuchsort.
  • Das Manöver ist eine sehr scharfe Kurve auf eine andere Straße, die von der API nicht als Wendemanöver klassifiziert wird.