Лучшие практики геокодирования адресов

Геокодирование — это процесс преобразования адресов (например, почтовых адресов) в географические координаты (широту и долготу), которые можно использовать для размещения маркеров на карте или позиционирования карты. Целью этого документа является разъяснение вопросов, связанных с геокодированием адресов. В нем описывается, когда оптимально использовать API геокодирования, а когда выгодно использовать службу автозаполнения мест Places API.

Обычно используйте API геокодирования при геокодировании полных адресов (например, «48 Pirrama Rd, Pyrmont, NSW, Australia»). Используйте службу Places API Place Autocomplete при геокодировании неоднозначных (неполных) адресов или для приложений, чувствительных к задержке, например при ответе на ввод пользователя.

Варианты использования и рекомендации API

Варианты использования и рекомендации API
Реагировать в режиме реального времени на вводимые пользователем данные (включая неоднозначные, неполные, плохо отформатированные или написанные с ошибками адреса, введенные пользователем) Используйте службу Places API Place Autocomplete, чтобы получить идентификатор места, а затем API геокодирования для геокодирования идентификатора места в формате latlng.
Автоматизированные системы, обрабатывающие полные однозначные почтовые адреса (например, «48 Pirrama Rd, Пирмонт, Новый Южный Уэльс, Австралия») Используйте веб-службу API геокодирования.
Автоматизированные системы, обрабатывающие неоднозначные запросы (например, неполные, плохо отформатированные или написанные с ошибками адреса). Рекомендовать автоматизированным системам использовать веб-сервис Geocoding API. Однако автоматизированные системы с высоким уровнем двусмысленных, неполных или неправильно написанных запросов, полученных на основе пользовательского ввода, могут получить выгоду от добавления интерактивного виджета автозаполнения мест, который позволит пользователям выбирать результат и, таким образом, избегать неправильного написания адреса.
Проблемы с задержкой при использовании Directions API или Distance Matrix API, когда пункты отправления, пункты назначения или путевые точки указаны в виде адресных строк. Сократите задержку геокодирования, используя службу автозаполнения мест API Places для получения идентификаторов мест, а затем передайте идентификаторы мест в API направлений или API матрицы расстояний.

Реагирование на ввод пользователя

Приложения, которые реагируют в режиме реального времени на ввод пользователя, имеют два основных фактора, влияющих на выбор API:

  1. Пользовательский ввод обычно включает постепенный ввод адреса (например, «123 Main Street»), поэтому возможность геокодирования неполных и неоднозначных адресов полезна, поскольку позволяет пользователю быстрее получить результат.
  2. Приложения, реагирующие на ввод пользователя, очень чувствительны к задержкам.

Эти два соображения делают службу Place Autocomplete в Places API идеальной для ответа на вводимые пользователем данные. Функция автозаполнения мест предназначена для возврата нескольких возможных вариантов и предоставления пользователю возможности выбора между ними. API Places можно ограничить поиском только по геокодам или адресам, исключая предприятия. Кроме того, функция поиска автозаполнения может быть настроена так, чтобы возвращать результаты, специфичные для определенного местоположения. API-интерфейс Places возвращает идентификатор места , который можно передать как полностью однозначное местоположение в веб-службу API геокодирования, которая затем возвращает полную информацию об адресе и геокодирует адрес в формате latlng. Идентификаторы мест также можно передавать в другие API, такие как Directions API и Distance Matrix API ( см. ниже ).

Геокодирование адресов в API геокодирования имеет гораздо более высокую задержку, а также дает менее точные результаты для неполных или неоднозначных запросов, поэтому его не рекомендуется использовать для приложений, которым приходится отвечать на ввод пользователя в режиме реального времени.

Получите дополнительную информацию о службе Place Autocomplete для Android , iOS , JavaScript и API Places .

Автоматизированные системы

Автоматизированные системы, обрабатывающие полные однозначные почтовые адреса . Однозначные запросы, такие как полные строки почтовых адресов (например, «48 Pirrama Rd, Pyrmont, NSW, Australia»), лучше всего обрабатываются веб-службой Geocoding API . Серверная часть геокодирования адресов обеспечивает более широкий охват адресов по всему миру и оптимизирована для получения высококачественных результатов с такими типами полных и однозначных запросов.

Автоматизированная система обработки неоднозначных запросов . Неоднозначными запросами считаются запросы, которые содержат плохо отформатированные адреса, неполные адреса или орфографические ошибки. Для автоматизированных систем мы рекомендуем использовать веб-сервис Geocoding API . Однако API геокодирования не предназначен для обработки неоднозначных запросов и может давать менее точные результаты или нулевые результаты в ответ на неоднозначные запросы. Если ваша автоматизированная система обрабатывает большое количество неоднозначных запросов, полученных на основе пользовательского ввода, вам может быть полезно добавить интерактивный элемент в ваше приложение с помощью службы Place Autocomplete в Places API , поскольку она предназначена для возврата нескольких возможных вариантов и для позволить пользователю выбирать между ними. API Places возвращает идентификатор места , который можно передать как полностью определенное местоположение в веб-службу API геокодирования, которая затем возвращает полную информацию об адресе и геокодирует адрес в формате latlng. Получите дополнительную информацию о службе Place Autocomplete для Android , iOS , JavaScript и API Places .

Уменьшение задержки для Directions API и Distance Matrix API.

Если пункты отправления, пункты назначения или путевые точки указаны в виде адресных строк, API направлений и API матрицы расстояний используют тот же сервер, что и API геокодирования, для геокодирования этих адресов перед расчетом направлений. Это значительно увеличивает задержку по сравнению с указанием тех же местоположений в виде latlngs или идентификаторов мест .

Если ваше приложение использует API Directions или Distance Matrix API в ситуациях, чувствительных к задержке, например, при ответе на ввод пользователя, а ваши пункты отправления, пункты назначения или путевые точки изначально указаны как строки адреса, мы рекомендуем минимизировать задержку с помощью автозаполнения места. сервис API адресов для преобразования адресных строк в идентификаторы мест, а затем передать идентификаторы мест в API направлений или API матрицы расстояний. Получите дополнительную информацию о службе Place Autocomplete для Android , iOS , JavaScript и API Places . См. также пример JavaScript для автозаполнения мест и направлений .

Заключение

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

Управление ошибками и повторными попытками

Если вы получаете ответы UNKNOWN_ERROR , это вызвано временными ошибками, и их лучше всего устранить, повторив попытку после небольшой задержки. Мы рекомендуем использовать клиентские библиотеки веб-служб платформы Google Maps, которые включают логику повторных попыток и поддерживают аутентификацию по плану Premium платформы Google Maps. Клиент Java , клиент Python , клиент Go и клиент Node.js для служб Google Maps — это поддерживаемые сообществом клиентские библиотеки, доступные для загрузки и участия на GitHub, где вы также найдете инструкции по установке и пример кода.

Если вы получили в ответ код состояния OVER_QUERY_LIMIT , вы превысили ограничения на использование API. Мы рекомендуем вам попробовать эти стратегии оптимизации использования .