Auf dieser Seite wird beschrieben, wie Sie Routen erstellen und benutzerdefinierte Attribute mithilfe der Roads Selection API hinzufügen. Die folgenden Abschnitte sind relevant:
- Route erstellen: Definieren Sie eine einzelne Route mit dem
createEndpunkt. - Routen im Batch erstellen: Definieren Sie mehrere Routen in einer einzigen
Anfrage mit dem Endpunkt
batchCreate. - Route mit Zwischenwegpunkten erstellen: Definieren Sie eine Route mit bis zu 25 Zwischenwegpunkten.
- Benutzerdefinierte Routenattribute verwenden: Fügen Sie Ihren Routen bis zu 10 benutzerdefinierte Schlüssel/Wert-Paare für Organisationszwecke hinzu.
Route erstellen
Senden Sie eine POST Anfrage an den create Endpunkt, um eine Route zu erstellen.
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes?selectedRouteId=SELECTED_ROUTE_ID
Der Anfragetext muss ein JSON-Objekt sein, das die SelectedRoute
Ressource definiert. Dieses Objekt gibt die folgenden Informationen an:
- Ein
dynamicRoute-Objekt mit den folgenden Informationen:- Der
originder ausgewählten Route. - Das
destinationder ausgewählten Route. - Alle
intermediatesder Route, auch Wegpunkte genannt.
- Der
- Eine eindeutige
selectedRouteId. Dieser Wert muss zwischen 4 und 63 Zeichen lang sein und nur alphanumerische Zeichen enthalten. Wenn Sie keine ID angeben, generiert das System eine eindeutige ID für die ausgewählte Route.
Das folgende Codebeispiel zeigt die Struktur einer POST Anfrage an den
create Endpunkt.
curl -X POST -d '
{"dynamic_route": { \
origin: {latitude: ORIGIN_LATITUDE ,longitude: ORIGIN_LONGITUDE}, \
destination: {latitude: DESTINATION_LATITUDE, longitude: DESTINATION_LONGITUDE} \
}}' \' \
-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?selectedRouteId=SELECTED_ROUTE_ID"Bei Erfolg gibt die API die SelectedRoute Ressource zurück. Die Antwort
enthält die selectedRouteId im name Feld. Sie können diese
selectedRouteId verwenden, um die Ressource SelectedRoute abzurufen oder zu löschen.
Das folgende Codebeispiel zeigt die Struktur einer erfolgreichen
create
Antwort des Endpunkts.
{
"name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID",
"dynamicRoute": {
"origin": {
"latitude": ORIGIN_LATITUDE,
"longitude": ORIGIN_LONGITUDE
},
"destination": {
"latitude": DESTINATION_LATITUDE,
"longitude": DESTINATION_LONGITUDE
}
},
"createTime": "CREATE_TIME",
"state": "STATE_VALIDATING"
}
Routen im Batch erstellen
Verwenden Sie den
batchCreate
Endpunkt, um mehrere Routen in einer einzigen Anfrage zu erstellen. Mit diesem Endpunkt können Sie bis zu 1.000 Routen in einem Aufruf definieren.
Senden Sie eine POST Anfrage an den batchCreate Endpunkt:
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes:batchCreate
Die URL verwendet die Syntax der gRPC-Transcodierung.
Der Anfragetext muss ein JSON-Objekt mit einem requests-Array sein.
Jedes Objekt in diesem Array ist eine CreateSelectedRouteRequest, die
eine einzelne SelectedRoute-Ressource definiert.
Das folgende Codebeispiel zeigt die Struktur einer POST Anfrage an den
batchCreate Endpunkt:
curl -X POST -d '
{"requests": [
{
"dynamicRoute": {
"origin": {"latitude": ORIGIN_LATITUDE_1, "longitude": ORIGIN_LONGITUDE_1},
"destination": {"latitude": DESTINATION_LATITUDE_1, "longitude": DESTINATION_LONGITUDE_1}
},
"selectedRouteId": "route-one"
},
{
"dynamicRoute": {
"origin": {"latitude": ORIGIN_LATITUDE_2, "longitude": ORIGIN_LONGITUDE_2},
"destination": {"latitude": DESTINATION_LATITUDE_2, "longitude": DESTINATION_LONGITUDE_2}
},
"selectedRouteId": "route-two"
}
]}
' \
-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:batchCreate"Bei Erfolg gibt die API eine Antwort mit einem Array der
SelectedRoute Ressourcen zurück.
Das folgende Codebeispiel zeigt die Struktur einer batchCreate Antwort des Endpunkts:
{
"selectedRoutes": [
{
"name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_1",
"dynamicRoute": {
"origin": {
"latitude": ORIGIN_LATITUDE_1,
"longitude": ORIGIN_LONGITUDE_1
},
"destination": {
"latitude": DESTINATION_LATITUDE_1,
"longitude": DESTINATION_LONGITUDE_1
}
},
"createTime": "CREATE_TIME_1",
"state": "STATE_VALIDATING"
},
{
"name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_2",
"dynamicRoute": {
"origin": {
"latitude": ORIGIN_LATITUDE_2,
"longitude": ORIGIN_LONGITUDE_2
},
"destination": {
"latitude": DESTINATION_LATITUDE_2,
"longitude": DESTINATION_LONGITUDE_2
}
},
"intermediates": [],
"createTime": "CREATE_TIME_2",
"state": "STATE_VALIDATING"
}
]
}
Route mit Zwischenwegpunkten erstellen
Wenn Sie eine Route erstellen möchten, die bestimmte Punkte zwischen Start und
Ziel durchläuft, fügen Sie in Ihrem Anfragetext ein intermediates Array in das
dynamicRoute Objekt ein. Jedes Element im
intermediates-Array ist ein Wegpunkt, der durch seinen latitude und
longitude definiert wird. Eine Route kann bis zu 25 Wegpunkte haben.
Das folgende Codebeispiel zeigt, wie Sie eine SelectedRoute mit
Zwischenwegpunkten erstellen:
curl -X POST -d '
{"dynamic_route": { \
"origin": {"latitude": ORIGIN_LATITUDE , "longitude": ORIGIN_LONGITUDE}, \
"intermediates": [
{"latitude": INTERMEDIATE_LATITUDE_1, "longitude": INTERMEDIATE_LONGITUDE_1},
{"latitude": INTERMEDIATE_LATITUDE_2, "longitude": INTERMEDIATE_LONGITUDE_2},
{"latitude": INTERMEDIATE_LATITUDE_3, "longitude": INTERMEDIATE_LONGITUDE_3}
],
"destination": {"latitude": DESTINATION_LATITUDE, "longitude": DESTINATION_LONGITUDE}}}' \
-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?selectedRouteId=SELECTED_ROUTE_ID"Benutzerdefinierte Routenattribute verwenden
Zur Verbesserung der Routenverwaltung und Datenanalyse in Roads Management Insights,
enthält das SelectedRoute-Objekt das route_attributes-Feld.
Mit dem routeAttributes Feld können Sie eigene benutzerdefinierte Attribute für
einzelne Routen definieren. Jedes Attribut ist ein Schlüssel/Wert-Paar. Sie können pro Route bis zu 10 benutzerdefinierte Schlüssel/Wert-Paare angeben.
Diese Attribute sind nützlich, um bestimmte Routen zu identifizieren oder Routen anhand von Kriterien zu gruppieren, die für Ihre Anforderungen relevant sind.
Hier einige Beispiele für Routenattribute, die Sie verwenden können:
"road_classification": "highway""maintenance_zone": "north_district""event_id": "marathon_2024""pavement_type": "asphalt"
Beachten Sie beim Definieren des routeAttributes Felds die folgenden Richtlinien:
- Schlüssel dürfen nicht mit dem Präfix
googbeginnen. - Die Länge jedes Schlüssels und jedes Werts darf 100 Zeichen nicht überschreiten.
Sie können diese benutzerdefinierten routeAttributes dann in Roads Management Insights
auf folgende Weise verwenden:
- Pub/Sub-Benachrichtigungen filtern:Sie können Filter für Ihre Pub/Sub-Abos festlegen, um nur Aktualisierungen für Routen zu erhalten, die bestimmten Attributschlüsseln und den entsprechenden Werten entsprechen oder nicht entsprechen.
- BigQuery-Analyse verfeinern:In Ihren BigQuery-Tabellen können Sie diese Attribute verwenden, um nach bestimmten Routen basierend auf dem Wert eines Attributs zu filtern. Sie können Routen auch nach einem bestimmten Attributschlüssel gruppieren, um die Datenanalyse gezielter zu gestalten.
Das nächste Codebeispiel zeigt, wie Sie eine SelectedRoute mit benutzerdefinierten
routeAttributes erstellen.
curl -X POST -d '
{"dynamic_route": { origin: {latitude: ORIGIN_LATITUDE ,longitude: ORIGIN_LONGITUDE}, destination: {latitude: DESTINATION_LATITUDE, longitude: DESTINATION_LONGITUDE}}, route_attributes: {"ATTRIBUTE_KEY":"ATTRIBUTE_VALUE"}}' \
-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?selectedRouteId=SELECTED_ROUTE_ID"