Вы можете использовать службу Places и API геокодирования с Maps SDK для Android для поиска регионов и получения дополнительной информации о местах. Служба Places и API геокодирования — это мощные и стабильные альтернативы для получения идентификаторов мест. Если вы уже используете идентификаторы мест, вы можете повторно использовать эти идентификаторы, используя стили на основе данных для границ.
Добавьте службу Places и геокодирование в свои приложения Maps SDK для Android следующими способами:
- Places SDK для Android — это библиотека Android, содержащая методы для возврата информации о местах.
- API Places возвращает информацию о местах с помощью HTTP-запросов.
- Класс геокодера может выполнять динамическое геокодирование и обратное геокодирование на основе пользовательского ввода.
- API геокодирования позволяет геокодировать статические известные адреса.
Используйте сервис «Места»
Используйте текстовый поиск (новинка), чтобы найти идентификатор места.
Вы можете использовать REST API текстового поиска (новое) в Places API, чтобы получить идентификатор места, включающий данные региона, указав 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 SDK для Android предоставляет пользователям удобный способ поиска регионов. Чтобы настроить службу автозаполнения мест для возврата только регионов, используйте AutocompleteSupportFragment.setTypesFilter(List)
, чтобы установить фильтр типа PlaceTypes.REGIONS
.
Получить информацию о месте для региона
Служба Place Details в Places SDK для Android возвращает данные по региону и может оказаться весьма полезной. Например, вы можете:
- Поиск идентификаторов граничных мест на основе названий мест.
- Получите область просмотра для масштабирования до границы.
- Получите тип объекта для границы (например,
locality
). - Получите отформатированный адрес, который разрешается как «Название места, штат, страна» в регионе США (например, «Оттумва, Айова, США»).
- Получите другие полезные данные, такие как фотографии.
Используйте API геокодирования
API геокодирования позволяет преобразовывать адрес в координаты широты и долготы и идентификатор места или преобразовывать координаты широты и долготы или идентификатор места в адрес. Следующие варианты использования хорошо сочетаются со стилем границ, управляемым данными:
- Используйте геокодирование, чтобы получить область просмотра региона.
- Примените фильтрацию компонентов к вызову геокодирования, чтобы получить идентификаторы мест для административных областей 1–4, населенного пункта или почтового индекса.
- Используйте обратное геокодирование, чтобы находить идентификаторы мест по координатам широты и долготы или даже возвращать идентификаторы мест для всех компонентов в определенном месте.
В следующем примере используется адрес (экранированный URL-адресом) для запроса к API геокодирования:
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