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

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

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

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

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

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

Gare de l'Est

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

Запрос API мест

В этом примере запроса API Places используется «текстовый поиск» для поиска Нотр-Дама. Подробности смотрите в документации разработчика . «ВАШ_КЛЮЧ» в этих примерах — это ключ API, который у вас есть для API-интерфейсов мест и маршрутов платформы Google Карт, включенных в Google Cloud Console. Более подробное объяснение можно найти в документации по началу работы с платформой 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

Первый результат — «Парковка Саэмса Мобера-Лагранжа» по координатам 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 направления обычно содержит несколько предложений маршрута. Каждый маршрут состоит из нескольких «этапов», которые содержат несколько «шагов», показывающих расстояние и координаты. Чтобы найти конечные координаты, до которых можно добраться на автомобиле, используйте поле «end_location» последнего шага последнего этапа выбранного вами маршрута.

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

Walking route from parking to Notre Dame

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

Резюме для примера 1

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

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

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

Heathrow airport on map
Давайте рассмотрим другой пример, когда водитель пытается добраться до большой территории с несколькими местоположениями, POI или потенциальными точками высадки. Водитель выезжает со стадиона Уэмбли, Великобритания (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 направлений, что пытаемся достичь места, а не каких-то произвольных координат.

  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 для поиска аэропорта Хитроу
  • Запрос API Places для поиска всех терминалов рядом с координатами аэропорта Хитроу.
  • Запрос Directions API для получения маршрута до терминала 5.

Заключение

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

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

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

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

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