Вы можете использовать Places Service и Geocoding API с Maps SDK для Android для поиска регионов и получения дополнительной информации о местах. Places Service и Geocoding API — это мощные и стабильные альтернативы для получения идентификаторов мест. Если вы уже используете идентификаторы мест, вы можете повторно использовать эти идентификаторы с управляемым данными стилем для границ.
Добавьте службу Places и геокодирование в свои приложения Maps SDK для Android следующими способами:
- Places SDK для Android — это библиотека Android, содержащая методы для возврата информации о местах.
- API мест возвращает информацию о местах с помощью HTTP-запросов.
- Класс Geocoder может выполнять геокодирование и обратное геокодирование динамически на основе введенных пользователем данных.
- API геокодирования позволяет геокодировать статические известные адреса.
Воспользуйтесь услугой «Места»
Используйте текстовый поиск (новый), чтобы найти идентификатор места
Вы можете использовать Text Search (New) REST API в API Places, чтобы получить идентификатор места, включающий данные о регионе, указав places.id
в маске поля. Использование Text Search (New) для запроса только идентификаторов мест не влечет за собой плату. Подробнее .
Например, чтобы получить идентификатор места для Тринидада, штат Калифорния, вы можете выполнить следующий вызов 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 геокодирования
Geocoding 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