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

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

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

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

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

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

Давайте выберем место, которое не имеет прямого выхода к дороге, так что маршрут нужно будет прокладывать отдельно. Пунктом назначения будет Собор Парижской Богоматери в Париже, а в качестве отправной точки возьмем железнодорожный вокзал Gare de l'Est (48.87697775149635, 2.3592247806755564).

Gare de l'Est

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

Запрос API мест

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

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

Как разработчик или поставщик услуг, мы рекомендуем автоматически подсказывать водителю: «Ищете парковку рядом с Нотр-Дам?». Пользовательский опыт будет отличаться в зависимости от устройства и экрана, но в данном случае стоит рассмотреть возможность использования незаметного всплывающего текста, исчезающего через короткое время. Чтобы найти парковку рядом с Нотр-Дам, выполните текстовый поиск через API Places, указав тип поиска «парковка» и радиус «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 Directions.

Запрос 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:

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

Пример 2. Сопровождение к терминалу в крупном аэропорту

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

  "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

Запрос выше выдаёт список терминалов и отдельных мест высадки в этих терминалах. В списке результатов мы находим «London Heathrow Airport Terminal 5» и его идентификатор:

 "place_id" : "ChIJtQRd6XVxdkgRTUGZtcsoGNc",

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

  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

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

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

Заключение

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

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

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

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

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