Чтобы находить регионы и получать дополнительную информацию о местах, вы можете использовать Maps SDK для iOS вместе с Places SDK для iOS или Geocoding API. Places SDK для iOS и Geocoding API – это мощные и надежные альтернативные решения для получения идентификаторов мест. Если вы уже работаете с такими идентификаторами, то сможете легко использовать их вместе со стилями на основе данных, чтобы показывать границы.
Возможны следующие варианты использования Places и Geocoding в приложениях с Maps SDK для iOS:
- Возврат информации о местах по HTTP-запросам с помощью Places SDK для iOS.
- Класс CLGeocoder может выполнять прямое и обратное геокодирование динамически на основе ввода данных пользователем.
- Геокодирование известных статических адресов с помощью Geocoding API.
Places API
Текстовый поиск Places API возвращает информацию о местах на основе введенной фразы, например "кафе в Москве", "обувные магазины в Санкт-Петербурге" или "улица Центральная, 123". Ответ содержит список мест, соответствующих текстовой строке с учетом указанного предпочтительного местоположения.
С сервисом Places Autocomplete вашим пользователям будет удобно искать регионы на карте. Чтобы показывать результаты в пределах определенного региона, задайте для параметра
locationRestrictionзначениеGMSAutocompleteFilter.
Как получить информацию о регионе
Также можно запрашивать информацию о местах для региона. Например, вы можете:
- идентификаторы граничащих с регионом мест по его названию;
- область просмотра для увеличения масштаба до границ региона;
- объекты определенного типа внутри границ (например, населенные пункты);
- форматированный адрес региона США в формате "населенный пункт, штат, страна" (например, "Керкленд, штат Вашингтон, США");
- фотографии и многое другое.
Geocoding API
С помощью Geocoding API вы можете преобразовывать адреса, координаты широты и долготы или идентификаторы мест в географические координаты и наоборот. Он поддерживает разные варианты использования, которые хорошо сочетаются со стилями на основе данных для границ. Например, вы можете:
- Получать область просмотра для региона.
- Применяйте фильтрацию по компонентам в вызовах Geocoding, чтобы получать идентификаторы мест для административных районов уровней 1–4, населенных пунктов или почтовых индексов.
- Получать идентификаторы мест по географическим координатам, а также для всех компонентов в том или ином местоположении – это делается с помощью обратного геокодирования.
В следующем примере для отправки запроса к Geocoding API используется адрес (с экранированием URL):
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEYИдентификаторы мест можно получать с помощью обратного геокодирования. В примере ниже функция сервиса Geocoding возвращает идентификаторы места для всех компонентов адреса в точке с заданными координатами.
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY
Обратное геокодирование можно использовать с фильтром компонентов адреса, чтобы получать только нужные вам компоненты:
administrativeAreacountrylocalitypostalCodeschoolDistrict
В примере ниже показано, как добавить ограничение при использовании функции обратного геокодирования в сервисе Geocoding, чтобы получить для заданной точки только адресный компонент
locality.https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY