Выберите маршрут на более короткое расстояние

Разработчики Европейской экономической зоны (ЕЭЗ)

Функция Compute Routes может возвращать маршруты, оптимизированные для поездок на более короткие расстояния, если вы включите маршруты на более короткие расстояния.

При запросе маршрута меньшей дальности сервис возвращает следующее:

  • Маршрут по умолчанию, оптимизированный в первую очередь с учетом расчетного времени прибытия.
  • Более короткий маршрут, оптимизированный для минимизации расстояния поездки на всем протяжении.

Что это такое и зачем это использовать

При выборе более короткого маршрута приоритет отдаётся расстоянию, а не комфорту или скорости вождения. Например, он может предпочесть местные дороги шоссе, грунтовые дороги или срезать путь через парковки. Он не отображает манёвры, которые Google Карты считают запрещёнными.

Запросить маршрут на более короткое расстояние

Ваш запрос должен соответствовать следующим критериям:

  • Установите travelMode на DRIVE , BICYCLE или TWO_WHEELER .
  • Установите requestedReferenceRoutes на SHORTER_DISTANCE .
  • Установите маску поля ответа для возврата свойств ответа, связанных с маршрутом меньшей дальности:
    • routes.routeLabels : идентифицирует каждый маршрут как DEFAULT_ROUTE , SHORTER_DISTANCE или DEFAULT_ROUTE_ALTERNATE .
    • routes.routeToken : токен маршрута, который можно передать в Navigation SDK для получения пользовательского маршрута.
  • Не включайте промежуточные точки маршрута Via .
  • Не включайте параметр optimizeWaypointOrder .
  • Необязательно : задайте маску поля ответа, чтобы вернуть следующие свойства, связанные как с маршрутом по умолчанию, так и с маршрутом более короткого расстояния:
    • routes.distanceMeters : Возвращает расстояние маршрута.
    • routes.duration : Возвращает длительность маршрута.

Справочную информацию см. в разделах ReferenceRoute и RouteLabel .

Пример запроса: Маршрут с более коротким расстоянием

Следующий код демонстрирует запрос на более короткий маршрут. В этом примере маска поля ответа используется для возврата полей, связанных как с маршрутом по умолчанию, так и с более коротким маршрутом, со следующими масками полей:

  • routes.distanceMeters
  • routes.duration
curl -X POST -H 'content-type: application/json' -d '{
  "origin": {
    "location": {
      "latLng": {
        "latitude": 41.76904801292959,
        "longitude": -72.67374935684933
      }
    }
  },
  "destination": {
    "location": {
      "latLng": {
        "latitude": 41.823042361105024,
        "longitude": -71.40933143059424
      }
    }
  },
  "travelMode":"DRIVE",
  "routingPreference":"TRAFFIC_AWARE",
  "requestedReferenceRoutes": ["SHORTER_DISTANCE"],
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY \
-H 'X-Goog-FieldMask: routes.distanceMeters,routes.duration,routes.routeLabels,routes.routeToken' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Пример ответа на более короткий маршрут

{
  "routes": [
    {
      "distanceMeters": 138943,
      "duration": "5373s",
      "routeToken": "CrsCCs4BMssBGq8BCkECFg9eN0MowaEI3Y4KqMEhzOTe-Qi3947kBsb8koUBkvX0oAKJ_b1S4uPoUvzzAYfXA92t_RXyw98Up6qKAaRaABIsNBjodKMdkMYAPMLMIajCwj-zsIxpgyBxOLYjdBBeKgkO3tFDDrj4YgZB5bMaFQAATME12CCCA9MEF-kO2wL_____DyoLHgAOAHN3DggAQQEyBAUBAQM9VDgqPkV88FI_SNO81oLq4JnjYyIXcklWWFo2cjhDZmltdk9NUDQ3aU1nUU0QBRpPCk0KGAoNCgIIAREAAAAAAIBmQBF56SYxqDm4QBISCAAQAxAGEBMQEhgCQgQaAggFIhsKF3JJVlhaLWFOQnZpbXZPTVA0N2lNZ1FNcAEoASIVAACBmRY1BjeCiUQewJGTrQ3DuHRp",
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 112610,
      "duration": "7165s",
      "routeToken": "CqgCCrsBMrgBGpwBCjYCFg1SN0MowaEI3Y4KjfqjF6Ls9BXc-QGiqCOpu7FDtfCXxSG2zLOGI_r4uQGc-we_nQ7MLAASLDQY6HSjHZDGg26EAFrPI5Q3NxvGA4ELazy3sLYqno_9eAFD2KxlCqAGQeWzGg4AAMQDGwyiAqwwKQggJCoLHgBsCQ8Acm0XWWcyAgQGPVQ4Kj5FfPBSP0jikPWC95WdhIwBIhdySVZYWjZHR0RiTzV2T01QOUpiQXlBTRAFGk8KTQoYCg0KAggCEQAAAAAAAFlAEU5iEFh5af1AEhIIABADEAYQExASGAJCBBoCCAUiGwoXcklWWFo3S09Cck81dk9NUDlKYkF5QU1wASgCIhUAAIGZFlj_CmMgGE6KGZcsE-tEywM",
      "routeLabels": [
        "SHORTER_DISTANCE"
      ]
    }
  ]
}

Пример запроса: более короткий и экономичный маршрут

В следующем коде показан запрос как на маршрут с меньшим расстоянием, так и на маршрут с экономичным расходом топлива.

`

 curl -X POST -d '{
"origin": {  "location": {  "latLng": {  "latitude": 41.76904801292959,
"longitude": -72.67374935684933  }  }  },  "destination": {  "location": {
"latLng": {  "latitude": 41.823042361105024,  "longitude": -71.40933143059424  }
 }  },  "travelMode":"DRIVE",  "routingPreference":"TRAFFIC_AWARE_OPTIMAL",
"requestedReferenceRoutes": ["SHORTER_DISTANCE", "FUEL_EFFICIENT"] }' 
-H 'Content-Type: application/json'
-H 'X-Goog-Api-Key: YOUR_API_KEY'
-H 'X-Goog-FieldMask: routes.distanceMeters,routes.duration,routes.routeLabels,routes.routeToken'
'https://routes.googleapis.com/directions/v2:computeRoutes'

Пример ответа: более короткий маршрут с экономичным расходом топлива.

В этом случае более короткое расстояние и наиболее экономичный по расходу топлива маршрут одинаковы, поэтому возвращается этот маршрут, а routeLabel включается для обоих типов маршрута.

{  "routes": [  {  "distanceMeters": 138943,  "duration": "5375s",
"routeToken":
"Cr8CCs4BMssBGq8BCkECFg9eN0MowaEI3Y4KqMEhzOTe-Qi3947kBsb8koUBkvX0oAKJ_b1S4uPoUvzzAYfXA92t_RXyw98Up6qKAaRaABIsNBjodKMdkMYAPMLMIajCwj-zsIxpgyBxOLYjdBBeKgkO3tFDDrj4YgZB5bMaFQAATME12CCCA9MEF-kO2wL_____DyoLHgAOAHN3DggAQQEyBAUBAQM9VDgqPkV88FI_SNO81oLq4JnjYyIXS1laWFo4T19JcWVCM2ZFUDFMbms4UXcQBRpTClEKGAoNCgIIAREAAAAAAIBmQBFOYhBYGTy4QBIWCAAQAxAGEBMQEhgCQgQaAggFSgIIASIbChdLWVpYWjlpV0g2ZUIzZkVQMUxuazhRd3ABKAEiFQAAgZkW4Df4cspNNJZWlMZuUUxLPQ",
 "routeLabels": [  "DEFAULT_ROUTE"  ]  },  {  "distanceMeters": 112610,
"duration": "7156s",  "routeToken":
"CqwCCrsBMrgBGpwBCjYCFg1SN0MowaEI3Y4KjfqjF6Ls9BXc-QGiqCOpu7FDtfCXxSG2zLOGI_r4uQGc-we_nQ7MLAASLDQY6HSjHZDGg26EAFrPI5Q3NxvGA4ELazy3sLYqno_9eAFD2KxlCqAGQeWzGg4AAMQDGwyiAqwwKQggJCoLHgBsCQ8Acm0XWWcyAgQGPVQ4Kj5FfPBSP0jikPWC95WdhIwBIhdLWVpYWi1UNklfT055OVlQczhhcWlRSRAFGlMKUQoYCg0KAggCEQAAAAAAAFlAEU5iEFh5af1AEhYIABADEAYQExASGAJCBBoCCAVKAggBIhsKF0tZWlhaNERXSF9PTnk5WVBzOGFxaVFJcAEoAiIVAACBmRaESp2EJS5nmwiEF8KH15_f",
 "routeLabels": [  "FUEL_EFFICIENT",  "SHORTER_DISTANCE"  ]  }  ] }

Поддерживаемые регионы

Маршруты меньшей протяженности поддерживаются во всех регионах.

Биллинг

Платформа Google Карт не взимает дополнительную плату за использование экспериментальной функции. Плата будет взиматься на основе фактического использования API и других установленных вами параметров.

Узнайте больше о выставлении счетов за Routes API.