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