Вы можете использовать сервис Places Service и API Geocoding с Maps SDK для Android для поиска регионов и получения дополнительной информации о местах. Сервис Places Service и API Geocoding — это мощные и стабильные альтернативы для получения идентификаторов мест. Если вы уже используете идентификаторы мест, вы можете повторно использовать их, используя стили для границ на основе данных.
Добавьте службу Places и геокодирование в свои приложения Maps SDK для Android следующими способами:
- Places SDK для Android — это библиотека Android, содержащая методы для возврата информации о местах.
- API мест возвращает информацию о местах с помощью HTTP-запросов.
- Класс Geocoder может динамически геокодировать и обратно геокодировать данные, введенные пользователем.
- API геокодирования позволяет геокодировать статические известные адреса.
Воспользуйтесь сервисом «Места»
Используйте текстовый поиск (новый), чтобы найти идентификатор места
Вы можете использовать REST API текстового поиска (новый) в API Places, чтобы получить идентификатор места, включающий данные о регионе, указав places.id
в маске поля. Использование текстового поиска (новый) для запроса только идентификаторов мест бесплатно. Подробнее .
Например, чтобы получить идентификатор места для Тринидада, штат Калифорния, вы можете сделать следующий вызов API:
curl -X POST -d '{ "textQuery" : "Trinidad, CA" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.id' \ 'https://places.googleapis.com/v1/places:searchText'
Используйте функцию автозаполнения мест для поиска регионов
Служба автозаполнения Places в составе Places SDK для Android предоставляет пользователям удобный способ поиска регионов. Чтобы настроить службу автозаполнения Places на возврат только регионов, используйте AutocompleteSupportFragment.setTypesFilter(List)
для установки фильтра типов PlaceTypes.REGIONS
.
Получить подробную информацию о месте в регионе
Сервис Place Details в Places SDK для Android, возвращающий данные о регионе, может быть весьма полезен. Например, вы можете:
- Поиск идентификаторов граничных мест на основе названий мест.
- Получить область просмотра для масштабирования до границы.
- Получите тип объекта для границы (например,
locality
). - Получите отформатированный адрес, который преобразуется в «Название места, штат, страна» в регионе США (например, «Оттамуа, Айова, США»).
- Получите другие полезные данные, например фотографии.
Используйте API геокодирования
API геокодирования позволяет преобразовать адрес в координаты широты и долготы и идентификатор места, а также преобразовать координаты широты и долготы или идентификатор места в адрес. Следующие варианты использования хорошо сочетаются со стилизацией границ на основе данных:
- Используйте геокодирование для получения области просмотра региона.
- Примените фильтрацию компонентов к вызову геокодирования, чтобы получить идентификаторы мест для административных районов 1–4, населенных пунктов или почтовых индексов.
- Используйте обратное геокодирование, чтобы найти идентификаторы мест по координатам широты и долготы или даже вернуть идентификаторы мест для всех компонентов в определенном месте.
В следующем примере для выполнения запроса к API геокодирования используется адрес (с URL-экранированием):
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY
Вы можете использовать обратное геокодирование для поиска идентификаторов мест. Следующий пример функции службы геокодирования возвращает идентификаторы мест для всех компонентов адреса в указанных координатах широты и долготы:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY
Используйте обратное геокодирование с фильтрацией компонентов, чтобы получить компонент адреса для одного или нескольких из следующих типов в указанном месте:
-
administrativeArea
-
country
-
locality
-
postalCode
В следующем примере функции показано использование службы геокодирования с добавлением ограничений компонентов с обратным геокодированием для получения всех компонентов адреса в указанном месте только для типа locality
:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY