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