Объединение сводок маршрутов с помощью функции «Поиск по маршруту»

Вы можете комбинировать сводные расчеты маршрута с поиском по маршруту . В этом случае Текстовый поиск (Новый) возвращает продолжительность поездки и расстояние до каждого места в ответе, а затем от каждого места до конечного пункта маршрута.

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

  1. Используйте API маршрутов для расчета маршрута, который возвращает в ответ полилинию маршрута .

  2. Используйте параметр searchAlongRouteParameters.polyline.encodedPolyline , чтобы передать полилинию маршрута в текстовый поиск (новый), чтобы сместить результаты поиска в соответствии с маршрутом. Затем ответ содержит места, соответствующие критериям поиска, а также расположенные рядом с указанным маршрутом.

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

По умолчанию Текстовый поиск (Новый) выполняет поиск по всему маршруту:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  }
}' \
-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'

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

{
  "places": [
    {
      "formattedAddress": "1477 Plymouth St suite c, Mountain View, CA 94043, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Zareen's",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "2464 W El Camino Real C, Mountain View, CA 94040, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Veggie Garden",
        "languageCode": "en"
      }
    },
   …
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ]
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ]
    },
   …
  ]
}

Для каждой записи в массиве legs текстовый поиск (новый) возвращает время поездки на два этапа :

  • Первый этап содержит продолжительность путешествия и расстояние от источника до места. В данном примере продолжительность и расстояние от начала координат до первого места в результатах составляют 285 секунд и 1616 метров.

  • Второй этап содержит продолжительность поездки и расстояние от места до пункта назначения маршрута. В этом примере продолжительность и расстояние составляют 2466 секунд и 58147 метров.

Укажите источник маршрута, режим движения и модификаторы маршрута.

Вы можете изменить расчет сводки поиска и маршрута, указав источник маршрута, режим движения, модификаторы маршрута и предпочтения маршрута. Модификаторы режима передвижения и маршрута работают так же, как и при расчете сводных данных о маршруте без указания маршрута, как показано в разделе «Укажите параметры путешествия» .

По умолчанию первый участок каждого результата содержит расстояние от начала координат, определенного полилинией, до каждого места. Однако вы можете переопределить это значение по умолчанию, явно указав источник маршрутизации в запросе. Если указано, первый участок всех ответов указывает расстояния и продолжительность от указанного начала маршрута, переопределяя начало координат из полилинии.

В следующем примере вы указываете начало маршрута в виде координат Сан-Матео, штат Калифорния, указываете, чтобы избежать платы за проезд, и устанавливаете количество результатов равное 5:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "maxResultCount": 5,
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  },
  "routingParameters": {
    "origin": {
      "latitude": 37.56617,
      "longitude": -122.30870
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidTolls": 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'

На следующем изображении показана карта, содержащая полилинию маршрута, новое начало координат (голубая отметка) и места в результатах поиска (зеленые отметки). Обратите внимание, что все результаты расположены по маршруту, но за пределами Сан-Матео:

Результаты поиска из источника обновления.