Советы по созданию наилучшего пользовательского опыта при навигации по местам с автомобилем

Существует более новая версия этого документа с примерами использования новых API для работы с местами (Places API) и маршрутами (Routes API).

Обычно, когда пользователь едет к интересующему его месту (POI), ему требуется навигация до ближайшего пункта назначения, например, парковки или точки доступа. Представьте водителя, которому нужно добраться до аэропорта или торгового центра. В аэропорту водитель стремится попасть к терминалу или месту высадки, а не в центр аэропорта. Аналогично, парковка рядом с торговым центром может быть гораздо лучшим вариантом для пользователя на автомобиле. В этом случае при разработке приложения или сервиса для навигации водителя сначала определите место назначения, а затем предложите водителю варианты пунктов назначения рядом с этим местом. Такой подход позволяет предоставлять более качественный сервис клиентам и демонстрировать, что вы цените их время, с помощью небольших, но продуманных усилий по разработке, использующих данные о местоположении, предоставляемые платформой Google Maps.

[Системный контекст] Системы навигации высокого уровня
Упрощенное представление систем, задействованных при направлении водителя к месту назначения с помощью автомобиля.
Схема систем высокого уровня

Мы покажем, как можно использовать API мест и API направлений последовательно или в комбинации, чтобы определить подходящее место для парковки рядом с пунктом назначения. Это решение призвано устранить неопределенность и множество взаимодействий при поиске места для парковки во время движения, когда вы уже приближаетесь к конечному пункту назначения. Давайте рассмотрим два примера того, как эти случаи могут быть реализованы более подробно.

Пример 1 — туристическая достопримечательность без парковки.

Выберем место, не имеющее прямого соединения с дорогой, чтобы маршрут нужно было прокладывать отдельно. Пункт назначения — собор Нотр-Дам в Париже, а в качестве отправной точки возьмем железнодорожный вокзал Гар де л'Эст (48.87697775149635, 2.3592247806755564).

Gare de l'Est

Водитель отъезжает от станции примерно в 16 минутах к северу от Нотр-Дама. Нотр-Дам — известная туристическая достопримечательность на острове, куда можно добраться по мосту, где есть несколько улиц с односторонним движением и нет большой парковки поблизости, так что это должно стать интересным испытанием.

Запрос API мест

В этом примере запроса к API Places используется «текстовый поиск» для поиска Нотр-Дама. Подробности см. в документации для разработчиков . «YOUR_KEY» в этих примерах — это ключ API, который у вас есть для API Places и Directions платформы Google Maps, включенных в консоли Google Cloud. Для более подробного объяснения см. документацию по началу работы с платформой Google Maps .

https://maps.googleapis.com/maps/api/place/textsearch/json?query=notre_dame&location=48.864716%2C2.349014&region=fr&key=YOUR_KEY

В ответ на вышеуказанный запрос получены следующие координаты широты и долготы:

  "results" : [
      {
        "formatted_address" : "Notre Dame, Paris",
        "geometry" : {
           "location" : {
               "lat" : 48.8527288,
                },
  ...

Как видите, координаты действительно указывают на собор Нотр-Дам.

Notre Dame photo
Notre Dame on map

Разработчикам и поставщикам услуг было бы неплохо автоматически предлагать водителю найти парковку рядом с Нотр-Дамом. Пользовательский опыт будет различаться в зависимости от устройства и экрана, но в данном случае стоит рассмотреть вариант с ненавязчивым всплывающим текстом, который исчезает через короткое время. Чтобы найти парковку рядом с Нотр-Дамом, выполните текстовый поиск через Places API, указав тип «парковка» и радиус «300». В этом примере результаты будут смещены в сторону парковок в пределах 300 метров от Нотр-Дама.

https://maps.googleapis.com/maps/api/place/textsearch/json?query=parking
&location=48.8527288%2C2.3505635&region=fr&type=parking&radius=300&key=YOUR_KEY

Первый результат — «Парковка Saemes Maubert-Lagrange» по координатам 48.850591, 2.3486436. Давайте используем это местоположение в следующей части, где мы будем выполнять запрос к API маршрута.

Запрос API для построения маршрута

Чтобы найти маршрут от вокзала до парковки рядом с Нотр-Дамом, необходимо выполнить запрос к API Directions. Просто укажите параметры начала и конца маршрута. Дополнительные параметры см. в документации для разработчиков .

https://maps.googleapis.com/maps/api/directions/json?origin=48.8767903,2.3592251&destination=48.850591%2C2.3486436&key=YOUR_KEY

Ответ API Direction обычно содержит несколько вариантов маршрута. Каждый маршрут состоит из нескольких «участков», каждый из которых содержит несколько «шагов», показывающих пройденное расстояние и координаты. Чтобы найти конечные координаты, до которых можно добраться на автомобиле, используйте поле «end_location» последнего шага заключительного участка выбранного вами маршрута.

Возможно, это место покажется не самым лучшим вариантом, но если вы посмотрите на карту или Google Street View, то увидите, что оно находится в нескольких минутах ходьбы от Нотр-Дама, примерно в 6-7 минутах.

Walking route from parking to Notre Dame

Пешеходный маршрут от парковки до Нотр-Дама.

Краткое изложение примера 1

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

  • Запрос к Places API для поиска координат Нотр-Дама.
  • Запрос к Places API для поиска парковочной зоны в пределах 300 метров от указанных координат.
  • Запрос к API Directions для поиска маршрута до парковки.

Пример 2. Как добраться до терминала в крупном аэропорту.

Heathrow airport on map
Рассмотрим другой пример, когда водитель пытается добраться до большой территории, на которой расположено множество мест, точек интереса или потенциальных мест высадки. Водитель выезжает со стадиона Уэмбли, Великобритания (51.557263604707224, -0.2794575145680608) и пытается добраться до терминала 5 лондонского аэропорта Хитроу . Обычно пользователь начинает вводить «Хитроу», и чаще всего выбирает один из первых 2 или 3 результатов, если он кажется правильным. Из выбранного результата можно узнать, что это аэропорт, прочитав значения поля «типы». Полный список типов можно найти здесь .

  "types" : [ "airport", "point_of_interest", "establishment" ],

Однако любой, кто бывал в крупном аэропорту, знает, что пересадка между терминалами занимает значительное время, если вы случайно окажетесь не в том месте. В данном случае, поскольку тип результата поиска — «аэропорт», полезно автоматически выполнить последующий поиск по запросу «терминал», используя координаты лондонского аэропорта Хитроу (51.47016927594547, -0.45432767852489075). В примере также можно увидеть дополнительное ограничение радиуса поиска в 3000 метров.

  https://maps.googleapis.com/maps/api/place/textsearch/json?query=terminal&location=51.47016927594547%2C-0.45432767852489075&region=gb&key=YOUR_KEY&radius=3000

Приведенный выше запрос выдает список терминалов и отдельных пунктов высадки пассажиров в этих терминалах. Из списка результатов мы можем найти «Лондонский аэропорт Хитроу, Терминал 5» и его идентификатор:

 "place_id" : "ChIJtQRd6XVxdkgRTUGZtcsoGNc",

Используя параметр «place_id», мы можем сообщить API Directions, что пытаемся добраться до места, а не до каких-либо произвольных координат.

  https://maps.googleapis.com/maps/api/directions/json?origin=51.557263604707224,-0.2794575145680608&destination=place_id:ChIJtQRd6XVxdkgRTUGZtcsoGNc&key=YOUR_KEY

Как и в предыдущем примере, прочитав все шаги в JSON-ответе, вы найдете последнюю часть пути и координаты широты и долготы конечных точек (51.47079979999999, -0.4896765).

Heathrow terminal 5

Краткое изложение примера 2

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

  • Запрос к Places API для поиска аэропорта Хитроу.
  • Запрос к Places API для поиска всех терминалов, расположенных рядом с координатами аэропорта Хитроу.
  • Запрос к API Directions для получения маршрута до терминала 5.

Заключение

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

В целях разработки вы можете использовать множество доступных библиотек и инструментов, которые помогут вам создавать сервисы для ваших клиентов. Ознакомьтесь с нашим общедоступным репозиторием на GitHub для Google Maps Platform .

Следующие действия

Основной автор

Микко Тойванен | Инженер по решениям платформы Google Maps