На этой странице описывается, как создавать маршруты и добавлять пользовательские атрибуты с помощью API выбора дорог в следующих разделах:
- Создать маршрут : определить один маршрут с помощью конечной точки
create. - Пакетное создание маршрутов : определение нескольких маршрутов в одном запросе с помощью конечной точки
batchCreate. - Создайте маршрут с промежуточными точками : определите маршрут, содержащий до 25 промежуточных точек.
- Используйте пользовательские атрибуты маршрута : добавьте до 10 пользовательских пар «ключ-значение» к своим маршрутам для организационных целей.
Создать маршрут
Чтобы создать маршрут, отправьте POST запрос на конечную точку create .
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes?selectedRouteId=SELECTED_ROUTE_ID
Тело запроса должно быть JSON-объектом, определяющим ресурс SelectedRoute . Этот объект содержит следующую информацию:
- Объект
dynamicRouteсо следующей информацией:-
originвыбранного маршрута. -
destinationвыбранного маршрута. - Любые
intermediatesмаршрута, также называемые путевыми точками.
-
- Уникальный
selectedRouteId. Это значение должно содержать от 4 до 63 символов и содержать только буквы и цифры . Если вы не укажете идентификатор, система сгенерирует уникальный идентификатор для выбранного маршрута.
В следующем примере кода показана структура запроса POST к конечной точке create .
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" В случае успешного выполнения API возвращает ресурс SelectedRoute . Ответ включает selectedRouteId в поле name . Вы можете использовать selectedRouteId для получения или удаления ресурса SelectedRoute .
В следующем примере кода показана структура ответа успешного create конечной точки.
{
"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"
}
Пакетное создание маршрутов
Чтобы создать несколько маршрутов в одном запросе, используйте конечную точку batchCreate . Эта конечная точка позволяет определить до 1000 маршрутов за один вызов.
Отправьте запрос POST на конечную точку batchCreate :
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes:batchCreate
URL использует синтаксис перекодировки gRPC.
Тело запроса должно быть JSON-объектом, содержащим массив requests . Каждый объект в этом массиве представляет собой запрос CreateSelectedRouteRequest , определяющий отдельный ресурс SelectedRoute .
В следующем примере кода показана структура запроса POST к конечной точке batchCreate :
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" В случае успеха API возвращает ответ, содержащий массив созданных ресурсов SelectedRoute .
В следующем примере кода показана структура ответа конечной точки batchCreate :
{
"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"
}
]
}
Создайте маршрут с промежуточными точками
Чтобы создать маршрут, проходящий через определённые точки между начальной и конечной точками, включите массив intermediates в объект dynamicRoute в теле запроса. Каждый элемент массива intermediates — это путевая точка, определяемая её latitude и longitude . Маршрут может содержать до 25 путевых точек.
В следующем примере кода показано, как создать SelectedRoute с промежуточными точками маршрута:
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"Использовать пользовательские атрибуты маршрута
Для улучшения управления маршрутами и анализа данных в Roads Management Insights объект SelectedRoute включает поле route_attributes .
Используйте поле routeAttributes для определения собственных свойств для отдельных маршрутов, где каждый атрибут представляет собой пару «ключ-значение». Вы можете указать до 10 пар «ключ-значение» для каждого маршрута.
Эти атрибуты полезны для определения конкретных маршрутов или для группировки маршрутов на основе критериев, соответствующих вашим потребностям.
Ниже приведены некоторые примеры атрибутов маршрута, которые вы можете использовать:
-
"road_classification": "highway" -
"maintenance_zone": "north_district" -
"event_id": "marathon_2024" -
"pavement_type": "asphalt"
При определении поля routeAttributes следуйте следующим рекомендациям:
- Ключи не должны начинаться с префикса
goog. - Длина каждого ключа и каждого значения не должна превышать 100 символов.
Затем вы можете использовать эти пользовательские routeAttributes в Roads Management Insights следующими способами:
- Фильтрация уведомлений Pub/Sub: вы можете установить фильтры для своих подписок Pub/Sub, чтобы получать обновления только для тех маршрутов, которые соответствуют или не соответствуют определенным ключам атрибутов и их соответствующим значениям.
- Уточните анализ BigQuery: в таблицах BigQuery вы можете использовать эти атрибуты для фильтрации определённых маршрутов по их значению. Вы также можете группировать маршруты по ключевому атрибуту для более точного анализа данных.
В следующем примере кода показано, как создать SelectedRoute с пользовательскими routeAttributes .
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"