Геокодирование — это процесс преобразования адресов (например, адреса улицы) в географические координаты (широту и долготу), которые можно использовать для размещения маркеров на карте или позиционирования карты. Целью этого документа является прояснение соображений, связанных с геокодированием адресов. В нем описывается, когда оптимально использовать API геокодирования, а когда выгодно использовать службу автозаполнения Places API Places.
Как правило, используйте API геокодирования при геокодировании полных адресов (например, «48 Pirrama Rd, Pyrmont, NSW, Australia»). Используйте службу автозаполнения Places API при геокодировании неоднозначных (неполных) адресов или для приложений, чувствительных к задержкам, например, при ответе на ввод пользователя.
Варианты использования и рекомендации API
Варианты использования и рекомендации API | |
---|---|
Реагировать в режиме реального времени на вводимые пользователем данные (включая неоднозначные, неполные, плохо отформатированные адреса или адреса с ошибками, введенные пользователем) | Используйте службу автозаполнения мест API Places для получения идентификатора места, а затем API геокодирования для геокодирования идентификатора места в широту. |
Автоматизированные системы, обрабатывающие полные и недвусмысленные почтовые адреса (например, «48 Pirrama Rd, Pyrmont, NSW, Australia»). | Используйте веб-службу API геокодирования. |
Автоматизированные системы, обрабатывающие неоднозначные запросы (например, неполные, плохо отформатированные адреса или адреса с ошибками) | Рекомендовать автоматизированным системам использовать веб-службу Geocoding API. Тем не менее, автоматизированные системы с высоким уровнем двусмысленных, неполных запросов или запросов с ошибками, полученных в результате пользовательского ввода, могут выиграть от добавления интерактивного виджета автозаполнения места, чтобы пользователи могли выбрать результат и, таким образом, избежать ошибок в написании адреса. |
Проблемы с задержкой при использовании Directions API или Distance Matrix API с пунктами отправления, пунктами назначения или путевыми точками, указанными в виде адресных строк. | Сократите задержку геокодирования, используя службу автозаполнения Places API для получения идентификаторов мест, а затем передайте идентификаторы мест API Directions или Distance Matrix API. |
Ответ на ввод пользователя
Приложения, которые в режиме реального времени реагируют на пользовательский ввод, имеют два основных фактора, влияющих на выбор API:
- Пользовательский ввод обычно включает ввод адреса постепенно (например, «123 Main Street»), поэтому возможность геокодирования неполных, неоднозначных адресов выгодна, поскольку позволяет пользователю быстрее получить результат.
- Приложения, которые реагируют на пользовательский ввод, очень чувствительны к задержкам.
Эти два соображения делают службу автозаполнения мест в Places API идеальной для ответа на вводимые пользователем данные. Функция автозаполнения мест предназначена для возврата нескольких возможных вариантов и предоставления пользователю возможности выбора между ними. Places API можно ограничить поиском только по геокодам или адресам, исключая предприятия. Кроме того, функция поиска автозаполнения может быть настроена так, чтобы возвращать результаты, специфичные для местоположения. API Places возвращает идентификатор места , который может быть передан как местоположение с полностью устраненной неоднозначностью в веб-службу API геокодирования, которая затем возвращает полные сведения об адресе и геокодирует адрес в latlng. Идентификаторы мест также можно передавать в другие API, такие как API направлений и API матрицы расстояний ( см. ниже ).
Геокодирование адресов в API геокодирования имеет гораздо большую задержку, а также дает менее точные результаты для неполных или неоднозначных запросов, поэтому не рекомендуется для приложений, которые должны реагировать в режиме реального времени на ввод данных пользователем.
Получите дополнительную информацию о службе автозаполнения мест для Android , iOS , JavaScript и Places API .
Автоматизированные системы
Автоматизированные системы, обрабатывающие полные однозначные почтовые адреса . Однозначные запросы, такие как полные строки почтовых адресов (например, «48 Pirrama Rd, Pyrmont, NSW, Australia»), лучше всего обрабатываются веб-службой Geocoding API . Серверная часть геокодирования адресов обеспечивает более широкий охват адресов по всему миру и оптимизирована для получения высококачественных результатов с этими типами полных однозначных запросов.
Автоматизированная система обработки неоднозначных запросов . Неоднозначные запросы — это те, которые содержат неправильно отформатированные адреса, неполные адреса или орфографические ошибки. Для автоматизированных систем мы рекомендуем использовать веб-сервис Geocoding API . Однако API геокодирования не предназначен для обработки неоднозначных запросов и может давать менее точные результаты или нулевые результаты в ответ на неоднозначные запросы. Если ваша автоматизированная система обрабатывает большое количество неоднозначных запросов, полученных на основе пользовательского ввода, вам может быть полезно добавить интерактивный элемент в свое приложение с помощью службы автозаполнения мест в Places API , поскольку она предназначена для возврата нескольких возможных вариантов и позволить пользователю выбирать между ними. API Places возвращает идентификатор места , который может быть передан как местоположение с полностью устраненной неоднозначностью в веб-службу API геокодирования, которая затем возвращает полные сведения об адресе и геокодирует адрес в latlng. Получите дополнительную информацию о службе автозаполнения мест для Android , iOS , JavaScript и Places API .
Уменьшение задержки для Directions API и Distance Matrix API
Когда исходные точки, пункты назначения или путевые точки указаны в виде адресных строк, API направлений и API матрицы расстояний используют тот же серверный компонент, что и API геокодирования, для геокодирования этих адресов перед расчетом направлений. Это значительно увеличивает задержку по сравнению с указанием тех же местоположений в качестве latlngs или идентификаторов мест .
Если ваше приложение использует API направлений или API матрицы расстояний в ситуации, чувствительной к задержке, например, при ответе на ввод данных пользователем, а ваши пункты отправления, назначения или путевые точки изначально указаны в виде адресных строк, мы рекомендуем свести к минимуму задержку с помощью автозаполнения места. службы Places API для преобразования адресных строк в идентификаторы мест, а затем передавать идентификаторы мест API Directions или Distance Matrix API. Получите дополнительную информацию о службе автозаполнения мест для Android , iOS , JavaScript и Places API . См. также пример JavaScript для автозаполнения мест и маршрутов .
Вывод
В зависимости от вашего варианта использования при геокодировании адресов с помощью API геокодирования или службы автозаполнения мест в сочетании с API геокодирования вы можете создавать приложения, которые предлагают пользователям точные результаты геокодирования, а также уменьшают задержку.
Управление ошибками и повторными попытками
Если вы получаете ответы UNKNOWN_ERROR
, они вызваны временными ошибками, и лучше всего их устранять повторной попыткой после небольшой задержки. Мы рекомендуем использовать клиентские библиотеки веб-сервисов платформы Google Карт, которые включают логику повторных попыток и поддерживают аутентификацию плана Премиум платформы Google Карт. Клиент Java , клиент Python , клиент Go и клиент Node.js для сервисов Google Maps — это клиентские библиотеки, поддерживаемые сообществом, которые можно загрузить и добавить на GitHub, где вы также найдете инструкции по установке и примеры кода.
Если в ответ вы получите код состояния OVER_QUERY_LIMIT
, вы превысили ограничения на использование API. Мы рекомендуем вам попробовать эти стратегии оптимизации использования .