Рассчитать сводку маршрутизации

Чтобы использовать текстовый поиск (новое) или поиск поблизости (новое) для расчета продолжительности поездки и расстояния до каждого места в ответе:

  1. Передайте параметр routingParameters.origin в запросе, чтобы указать координаты широты и долготы источника маршрутизации. Этот параметр необходим для расчета длительности и расстояния до каждого места ответа.

  2. Включите routingSummaries в маску поля, чтобы ответ включал массив routingSummaries . Этот массив содержит продолжительность и расстояние от источника маршрутизации до каждого места в ответе.

API Explorer позволяет вам делать запросы в реальном времени, чтобы вы могли ознакомиться с API и опциями API:

Попробуйте!

Использовать текстовый поиск (новинка)

В следующем запросе вы вычисляете продолжительность поездки и расстояние до каждого места в ответе текстового поиска (новое):

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

Ответ содержит два массива JSON: массив places содержит совпадающие места, а массив routingSummaries содержит продолжительность и расстояние, которое нужно пройти до каждого места:

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      object (RoutingSummary)
    }
}

Каждый элемент routingSummaries находится в соответствующем месте массива в качестве места в массиве places . То есть элемент routingSummaries[0] соответствует месту places[0] .

Длина массива routingSummaries такая же, как длина массива places . В случае, когда routingSummary для места недоступна, запись массива пуста.

Поскольку в этом примере вычисляются продолжительность и расстояние от источника маршрутизации до каждого места, поле routingSummaries.legs в ответе содержит один объект Leg , который содержит значения duration и distanceMeters от источника маршрутизации до места.

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   
  ]
}

Из этого примера видно, что продолжительность и расстояние от начала маршрута до первого места в результатах составляет 597 секунд и 2607 метров.

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

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

Вам не обязательно использовать одни и те же координаты для locationRestriction и для источника маршрутизации. Например, вы устанавливаете locationRestriction на центральную точку Сиднея, чтобы сместить результаты поиска к этому кругу. Но затем вы устанавливаете начало маршрута в координатах вашего дома, то есть в другом месте в круге поиска. Затем запрос смещает результаты поиска к кругу и вычисляет сводные данные о маршруте на основе местоположения вашего дома.

Укажите варианты поездки

По умолчанию расчеты продолжительности и расстояния относятся к автомобилю. Однако вы можете контролировать тип транспортного средства, а также другие параметры в поиске.

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

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": true
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'