Вы можете использовать Places Service и Geocoding API с Maps SDK для Android, чтобы искать регионы и получать дополнительную информацию о местах. Сервис Places и Geocoding API – это мощные и надежные альтернативные решения для получения идентификаторов мест. Если вы уже используете идентификаторы мест, то сможете легко использовать их вместе со стилями на основе данных, чтобы показывать границы.
Добавьте Places Service и Geocoding в приложения для Android с помощью Maps SDK для Android следующими способами:
- Places SDK для Android – это библиотека Android, содержащая методы для получения информации о местах.
- Возврат информации о местах по HTTP-запросам с помощью Places API.
- Класс Geocoder позволяет динамически выполнять геокодирование и обратное геокодирование на основе ввода данных пользователем.
- Геокодирование известных статических адресов с помощью Geocoding API.
Использование Places Service
Как найти идентификатор места с помощью новой версии текстового поиска
Вы можете использовать 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 Autocomplete в Places SDK для Android позволяет пользователям искать регионы на карте. Чтобы сервис автозаполнения мест возвращал только регионы, используйте AutocompleteSupportFragment.setTypesFilter(List), чтобы задать для фильтра типов значение PlaceTypes.REGIONS.
Как получить информацию о регионе
Сервис Place Details в Places SDK для Android возвращает данные о регионе, которые могут быть очень полезны. Например, вы можете:
- идентификаторы граничащих с регионом мест по его названию;
- область просмотра для увеличения масштаба до границ региона;
- объекты определенного типа внутри границ (например,
locality); - форматированный адрес региона США в формате "населенный пункт, штат, страна" (например, "Оттумва, штат Айова, США");
- фотографии и многое другое.
Geocoding API
Geocoding API позволяет преобразовывать адрес в координаты широты и долготы и идентификатор места, а также координаты широты и долготы или идентификатор места в адрес. Он поддерживает разные варианты использования, которые хорошо сочетаются со стилями на основе данных для границ. Например, вы можете:
- Получать область просмотра для региона.
- Получать идентификаторы мест для административных районов уровней 1–4, названия населенных пунктов и индексы – для этого в вызовах Geocoding можно применять фильтры по компонентам.
- Получать идентификаторы мест по географическим координатам, а также для всех компонентов в том или ином местоположении – это делается с помощью обратного геокодирования.
В следующем примере для отправки запроса к Geocoding API используется адрес (с экранированием URL):
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEYПолучать идентификаторы мест можно с помощью обратного геокодирования. В примере ниже функция сервиса Geocoding возвращает идентификаторы места для всех компонентов адреса в точке с заданными координатами.
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEYОбратное геокодирование можно использовать с фильтром компонентов адреса, чтобы получать только нужные вам компоненты:
administrativeAreacountrylocalitypostalCode
В примере ниже показано, как добавить ограничение при использовании функции обратного геокодирования в сервисе Geocoding, чтобы получить для заданной точки только адресный компонент locality.
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY