Обзор
Платформа Google Карт совместима как с веб-приложениями (JS, TS), так и с приложениями для Android и iOS. Кроме того, она предоставляет API веб-сервисов для получения сведений о местах, маршрутах и расстояниях. В этом руководстве содержатся примеры для одной платформы, а для остальных приводятся ссылки на документацию по внедрению.
Выписки о транзакциях часто выглядят так, что пользователям непросто в них разобраться. Например, название компании Acme Houseware в выписке может быть указано как ACMEHCORP. В результате повышается число обращений в службу поддержки и возникают споры с клиентами, приводящие к убыткам. Дополненные транзакции – это набор улучшений, позволяющих показывать полное название компании-продавца, вид ее деятельности, фотографию магазина, адрес и положение на карте, контактную информацию и т. д. С ними пользователям проще и удобнее просматривать выписку, так что они будут проводить больше времени в вашем приложении, а вы станете получать меньше звонков в службу поддержки и повысите лояльность покупателей.
В этой статье приводятся рекомендации о том, как с помощью различных API платформы Google Карт оптимально реализовать улучшения, которые сделают историю транзакций удобнее для пользователей. Дополненными транзакциями мы называем совокупность этих функций. В руководстве по внедрению показано, как найти местоположение, соответствующее определенной компании, и показать о ней подробные сведения.
![Примеры экранов приложения с дополненными транзакциями](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/enriched-transactions/images/diagram.png?authuser=3&hl=ru)
Включение API
Чтобы реализовать дополненные транзакции, необходимо включить в Google Cloud Console указанные ниже API. Следующие ссылки позволяют перейти на страницы Google Cloud Console, где можно включить эти API для выбранного проекта:
Подробная информация приведена в статье Начало работы с платформой Google Карт.Разделы руководства по внедрению
Ниже перечислены рекомендации, которые мы рассмотрим в этой статье.
- Флажком отмечены основные рекомендации.
- Звездочкой отмечены второстепенные рекомендации, которые открывают дополнительные возможности.
Поиск информации о продавце с помощью платформы Google Карт | Связывайте сведения о продавцах в истории транзакций с данными о местах в платформе Google Карт. | |
Показ сведений о продавце | Дополняйте сведения о транзакции важными подробностями, которые помогут пользователю вспомнить обстоятельства покупки. | |
Добавление карты | Добавьте в приложение карту, где будет показываться местоположение продавца. |
Поиск информации о продавце с помощью платформы Google Карт
В примере используется: Places API |
На приведенной ниже схеме показано, как приложение получает данные о месте, соответствующем транзакции. Эти сведения находятся либо по идентификатору из существующей базы данных продавцов, либо с помощью запроса поиска мест.
![Схема процесса получения данных о продавце](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/enriched-transactions/images/decision-matrix-diagram.png?authuser=3&hl=ru)
Получение идентификаторов мест для платформы Google Карт
Возможно, у вас есть база данных с основными сведениями о продавцах, такими как название и адрес. Платформа Google Карт также содержит определенную информацию о местах, в том числе контактные данные и добавленные пользователями сведения. Чтобы получить эту информацию, необходимо указать идентификатор места на платформе Google Карт, присвоенный продавцу из вашей базы данных.
Чтобы получить идентификатор места, соответствующий компании, отправьте запрос в конечную точку Places API /findplacefromtext. Запросите только поле place_id
, чтобы вызов был бесплатным. Если у продавца несколько филиалов, то помимо названия продавца укажите город или улицу. Качество возвращаемых данных может быть разным, поэтому нужно проверять, соответствует ли результат искомому продавцу.
Например, так запрашивается идентификатор места для офиса Google в Тайбэе по названию продавца и городу:
https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=google%20taipei&inputtype=textquery&fields=place_id&key=YOUR_API_KEY&solution_channel=GMP_guides_enrichedtransactions_v1_a
Обязательно выполняйте кодирование URL в таких запросах API.
Сохранение идентификаторов мест
Вы можете сохранить идентификатор места из платформы Google Карт в своей базе данных в качестве атрибута записи о продавце. Так вам не придется выполнять запрос поиска мест повторно для одного и того же продавца. Впрочем, вы можете искать идентификатор места каждый раз, когда пользователь запрашивает сведения о транзакции.
Чтобы поддерживать актуальность информации в своей базе данных, обновляйте идентификаторы мест каждые 12 месяцев с помощью запроса информации о месте с параметром place_id
.
Рекомендуем добавить в приложение функции обратной связи, чтобы в случаях, когда показывается неправильная информация о продавце, пользователь мог сообщить вам об этом.
Показ сведений о продавце
В примере используется: Places API | Также доступно: Places SDK для Android | Places SDK для iOS | Places Library, Maps JavaScript API |
Вы можете предоставлять пользователям полезную информацию о своих офисах или магазинах. Показывайте в своем приложении подробную информацию о местах из истории транзакций пользователя, например контактные данные, часы работы, пользовательские оценки и фотографии. Получив сведения о месте с помощью вызова Places API, вы можете отфильтровать полученную информацию и показать ее в окне приложения, на боковой панели сайта или любым другим способом.
![Пример экрана с информацией о продавце](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/enriched-transactions/images/enriched-transactions.png?authuser=3&hl=ru)
Чтобы запросить информацию о местах, необходимо указать их идентификаторы. Подробнее о том, как получить идентификатор места…
Следующий запрос возвращает адрес, координаты, URL сайта, номер телефона, оценку и часы работы тайбэйского офиса Google в формате json
:
https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJraeA2rarQjQRyAqIxkx2vN8&fields=name%2Cformatted_address%2Cwebsite%2Cformatted_phone_number%2Cgeometry/location%2Cicon%2Copening_hours%2Crating&key=YOUR_API_KEY&solution_channel=GMP_guides_enrichedtransactions_v1_a
Добавление карты
В примере используется: Geocoding API | Maps Static API | Также доступно: Android | iOS |
Определение местоположения продавца
Maps Static API позволяет поставить маркер на карте, указав координаты или адрес места. Если в вашей базе данных уже есть адрес продавца, можете сразу перейти к следующему разделу инструкций. Однако мы рекомендуем использовать не адрес, а координаты, чтобы позиционирование было более точным.
Если в вашей базе данных есть адреса продавцов, но нет географических координат и вы не выполняете запросы данных о месте, то вы можете преобразовывать адреса в координаты с помощью Geocoding API на стороне сервера, сохранять эти координаты в своей базе данных и обновлять их хотя бы раз в 30 дней.
В этом примере мы с помощью Geocoding API получаем широту и долготу по идентификатору места для офиса Google в Тайбэе:
https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJraeA2rarQjQRyAqIxkx2vN8&key=YOUR_API_KEY&solution_channel=GMP_guides_enrichedtransactions_v1_a
Добавление на карту маркера, указывающего местоположение продавца
Поскольку пользователи не будут ничего искать на карте (она нужна только для того, чтобы увидеть, где произошла транзакция), имеет смысл ограничить ее интерактивные функции.
На сайтах для компьютеров и мобильных устройств создавайте URL Maps Static API с одним маркером по адресу или координатам продавца. Обратившись к Maps Static API с помощью вызова веб-сервиса, вы можете получить изображение карты с указанными параметрами. Инструкции для мобильных приложений приведены в следующем разделе.
Приведенный ниже вызов позволяет получить изображение карты размером 640 x 480 пикселей с масштабом по умолчанию и центровкой на маркере тайбэйского офиса Google. Этот запрос также определяет красный цвет маркера и задает облачный стиль карты.
https://maps.googleapis.com/maps/api/staticmap?size=640x480&markers=color:red%7C25.033976%2C121.5645389&map_id=b224095f76859890&key=YOUR_API_KEY&signature=BASE64_SIGNATURE&solution_channel=GMP_guides_enrichedtransactions_v1_a
Вот как заданы эти параметры:
URL API | https://maps.googleapis.com/maps/api/staticmap? |
Размер изображения | size=640x480 |
Маркеры местоположения продавца (с кодированием URL) | markers=color:red%7C25.033976%2C121.5645389 |
Облачный стиль карты | map_id=b224095f76859890 |
Ключ API | key=YOUR_API_KEY |
Цифровая подпись (как добавить цифровую подпись в запрос) | signature=BASE64_SIGNATURE |
Параметр канала решения (документация по параметрам) | solution_channel=GMP_guides_enrichedtransactions_v1_a |
Вот как будет выглядеть результат:
Позицию маркера также можно задать с помощью адреса:
https://maps.googleapis.com/maps/api/staticmap?size=640x480&markers=color:green%7CTaipei%20101%20Tower%2CNo.%207信義路五段信義區台北市%20Taiwan%20110&map_id=b224095f76859890&key=YOUR_API_KEY&signature=BASE64_SIGNATURE&solution_channel=GMP_guides_enrichedtransactions_v1_a
Полный список параметров доступен в документации Maps Static API.
Добавление карты в мобильное приложение
Если вы используете Maps SDK для Android или Maps SDK для iOS, вы можете поставить маркер по координатам, полученным с помощью запроса информации о месте.
Поскольку пользователи не будут ничего искать на карте (она нужна только для того, чтобы увидеть место транзакции), выберите карту с ограниченными интерактивными функциями.
- Для Android: следуйте инструкциям по добавлению карты с маркером и включите упрощенный режим, чтобы ограничить интерактивность.
- Для iOS: следуйте инструкциям по добавлению карты с маркером и отключите элементы управления и жесты с помощью параметра
GMSUiSettings
.