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

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

Заключение

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

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

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

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

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