На этой странице в следующих разделах описывается, как создавать маршруты и добавлять пользовательские атрибуты с помощью 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"