Auf dieser Seite wird beschrieben, wie Sie bereits erstellte Routen mit der Roads Selection API aktualisieren:
- Route aktualisieren: Aktualisieren Sie die Details einer einzelnen Route mit dem
patchEndpunkt. - Batch-Update von Routen: Aktualisieren Sie die Details mehrerer Routen in einer einzigen
Anfrage mit dem
batchUpdateEndpunkt.
Route aktualisieren
Senden Sie eine PATCH Anfrage an den patch Endpunkt, um eine Route zu aktualisieren:
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID?updateMask=UPDATE_MASK
Der Anfragetext muss ein JSON-Objekt mit den Feldern von
SelectedRoute sein, die aktualisiert werden sollen. Aktualisierbare Felder sind displayName,
routeAttributes, und dynamicRoute. Wenn Sie die Routengeometrie (dynamicRoute) aktualisieren, müssen Sie das gesamte dynamicRoute-Objekt angeben (Startpunkt, Ziel und Zwischenziele). Teilaktualisierungen von Unterfeldern werden nicht unterstützt. Schreibgeschützte Systemfelder wie name, createTime und state können nicht geändert werden. In BigQuery-Verlaufsdaten werden die Daten für die alte und die aktualisierte Geometrie unter derselben selectedRouteId beibehalten. Wenn Sie separate Verlaufsdaten benötigen, erstellen Sie eine neue Route, anstatt eine Aktualisierung durchzuführen.
Wenn Sie die Geometrie einer Route (dynamicRoute) aktualisieren, muss sie neu validiert werden.
Geometrieaktualisierungen sind zulässig, wenn sich die Route im Status STATE_RUNNING oder STATE_INVALID befindet. Sie werden abgelehnt, wenn sich die Route im Status STATE_VALIDATING oder STATE_DELETING befindet. Weitere Informationen finden Sie unter Validierung und Routenstatus.
Das Aktualisieren von Metadaten wie displayName oder routeAttributes ist in allen Status außer STATE_DELETING zulässig.
Das folgende Codebeispiel zeigt die Struktur einer PATCH Anfrage an den
patch Endpunkt:
curl -X PATCH -d '{
"dynamicRoute": {
"origin": {
"latitude": 38.5817,
"longitude": -121.4944
},
"destination": {
"latitude": 38.5449,
"longitude": -121.7405
}
}
}' \
-H 'X-Goog-User-Project: PROJECT_NUMBER' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
"https://roads.googleapis.com/selection/v1/projects/"\
"PROJECT_NUMBER/selectedRoutes/"\
"SELECTED_ROUTE_ID?updateMask=dynamicRoute"Bei Erfolg gibt die API die aktualisierte SelectedRoute-Ressource zurück:
{ "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID", "dynamicRoute": { "origin": { "latitude": 38.5817, "longitude": -121.4944 }, "destination": { "latitude": 38.5449, "longitude": -121.7405 } }, "createTime": "2026-08-14T20:58:41.345418Z", "state": "STATE_VALIDATING" }
Batch-Update von Routen
Verwenden Sie den batchUpdate
Endpunkt, um mehrere Routen in einer einzigen Anfrage zu aktualisieren. Mit diesem Endpunkt können Sie bis zu 1.000 Routen in einem Aufruf aktualisieren. Batchaktualisierungen sind atomar. Wenn die Validierung einer Route in der Anfrage fehlschlägt oder sie nicht aktualisiert werden kann, werden keine Routen im Batch geändert.
Senden Sie eine POST Anfrage an den batchUpdate Endpunkt:
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes:batchUpdate
Der Anfragetext muss ein JSON-Objekt mit einem requests-Array sein.
Jedes Objekt in diesem Array ist eine UpdateSelectedRouteRequest, die den Routen-name, eine optionale updateMask auf Elementebene und die selectedRoute-Felder angibt, die aktualisiert werden sollen.
Ein updateMask ist ein optionaler Parameter, der die Liste der zu
aktualisierenden Felder angibt (displayName, routeAttributes, oder das gesamte dynamicRoute
Objekt). Wenn Sie updateMask=* festlegen, wird ein vollständiger Ersatz angegeben. Eine updateMask kann in jedem einzelnen Element in requests angegeben oder auf die oberste Ebene des Batchanfragetexts verschoben werden, um auf alle aktualisierten Routen im Batch angewendet zu werden.
Wenn updateMask nicht angegeben ist, werden alle aktualisierbaren Felder, die in der Anfrage ausgefüllt sind, als aktualisiert angenommen. Wenn eine updateMask sowohl auf Batch- als auch auf Elementebene festgelegt ist, müssen sie übereinstimmen. Wenn Sie in Konflikt stehende Masken angeben, führt dies zu einem INVALID_ARGUMENT-Fehler.
Das folgende Codebeispiel zeigt die Struktur einer POST Anfrage an den
batchUpdate Endpunkt:
curl -X POST -d '{
"requests": [
{
"selectedRoute": {
"name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_1",
"displayName": "DISPLAY_NAME_1",
"dynamicRoute": {
"origin": {"latitude": 37.5, "longitude": -122.1},
"destination": {"latitude": 37.8, "longitude": -122.5}
}
},
"updateMask": "displayName,dynamicRoute"
},
{
"selectedRoute": {
"name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_2",
"displayName": "DISPLAY_NAME_2",
"dynamicRoute": {
"origin": {"latitude": 37.5, "longitude": -122.1},
"destination": {"latitude": 37.8, "longitude": -122.5}
}
},
"updateMask": "displayName,dynamicRoute"
}
]}' \
-H 'X-Goog-User-Project: PROJECT_NUMBER' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
"https://roads.googleapis.com/selection/v1/projects/"\
"PROJECT_NUMBER/selectedRoutes:batchUpdate"Bei Erfolg gibt die API eine Antwort mit einem Array der
SelectedRoute Ressourcen zurück:
{ "selectedRoutes": [ { "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_1", "displayName": "DISPLAY_NAME_1", "dynamicRoute": { "origin": { "latitude": 37.5, "longitude": -122.1 }, "destination": { "latitude": 37.8, "longitude": -122.5 } }, "createTime": "2026-08-14T20:58:41.345418Z", "state": "STATE_VALIDATING" }, { "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_2", "displayName": "DISPLAY_NAME_2", "dynamicRoute": { "origin": { "latitude": 37.5, "longitude": -122.1 }, "destination": { "latitude": 37.8, "longitude": -122.5 } }, "createTime": "2026-08-14T20:58:41.345418Z", "state": "STATE_VALIDATING" } ] }