Город определяется как
населенный пункт указывает на объединенный город или городскую политическую единицу.
и подлокальность как:
населенный пункт указывает на гражданское образование первого порядка ниже населенного пункта. Для некоторых локаций может быть назначен один из дополнительных типов: от sublocality_level_1 до sublocality_level_5.
в типы компонентов адреса в геокодировании. Также следует обратиться к списку поддерживаемых типов для использования с параметром запроса типов и возвращенных Google API.
Идея состоит в том, чтобы начать с назначенного sublocality_level_1 в вашем городе, получить sublocality_level_2 и сохранить их в БД. Повторите, но только на этот раз с sublocality_level_2, чтобы получить sublocality_level_3. Ключевым моментом является сохранение геометрии и имени адреса (длинное имя, короткое имя и т. д.) в БД, чтобы вы могли запустить их снова, чтобы получить адекватную, если не всю информацию, тем самым имитируя поведение масштабирования. Наконец, используйте API-интерфейсы автозаполнения для получения (суб)локации, которая не попала в ваш магазин, но, как вы знаете, должна была быть получена.
Подстановка сублокальности, местности и административной области level_1 в запросе геокодирования json :
https://maps.googleapis.com/maps/api/geocode/xml?address=[sublocality.1],+[locality],+[admin_area_level.1]&key=API_KEY
Убедитесь, что подлокальность.1 находится в нужном месте.
<address_component>
<long_name>sublocality.1</long_name>
<short_name>sublocality.1</short_name>
<type>sublocality_level_1</type>
<type>sublocality</type>
<type>political</type>
</address_component>
<..></..>
<..></..>
<geometry>
<location>
<lat>nn.nnnnnnnnn</lat>
<lng>nn.nnnnnnnnn</lng>
</location>
Используйте поиск Radar с параметрами запроса location=&radius=10000&types=(regions )
Ссылка на поддерживаемые типы
Коллекция типов (regions) указывает службе Places возвращать любой результат, соответствующий следующим типам:
Затем извлеките все place_id, используйте API сведений о месте, который принимает place_id в качестве параметра запроса и требует api_key.
Ответ сведения о месте должен содержать все sublocality_level_2 для выбранного sublocality_level_1. Сохраните их в БД, исключив дубликаты по имени. В конце этого у вас есть одно местоположение для местности (города), выбранное sublocality_level_1 и количество сохраненных объектов sublocality_level_2 Location.
Это должно быть сделано для sublocality_level_2. Так как они занимают значительную площадь, я считаю, что их отсутствие в идеале может и не произойти. Если вы пропустите, используйте API автозаполнения, если вы знаете начальные символы или Обратное геокодирование, если вы знаете точную геометрию отсутствующего уровня_2.
Вышеуказанные шаги повторите для sublocality_level_3 под заданным level_2 с известным именем.
Для каждой геометрии используйте Обратное геокодирование, чтобы получить уровень_3, который, если его нет в магазине, работает против Сведения о месте, снова получить sublocality_level_2 и сохранить. Это необходимо, так как некоторые уровни level_3 напрямую связаны с уровнями level_1. Этот шаг аналогичен тщательному увеличению карты для поиска местности.
Используйте JSON
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=&types=(regions)&location=latitude,longitude&radius=1000&key=YOUR_API_KEY
Обратите внимание на () вокруг регионов. Это дает вам местность и другие. См. https://developers.google.com/places/web-service/autocomplete< /а>
Весь процесс можно повторить с sub_locality_type_1, расположенным рядом с ранее использованным. Используйте для этого поиск поблизости (поиск места). Параметрами запроса для определения местоположения должны быть геометрия юго-западной и северо-восточной границ указанной выше местности level_1 (суб). Обратите внимание на использование radius=1. Используемый JSON URI:
https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters
person
Mahesh
schedule
20.12.2015