Получение разных уровней мест - PullRequest
0 голосов
/ 25 мая 2018

Есть ли способ получить разные уровни мест из определенного места?Например, когда вы загружаете адресные компоненты места, вы получаете «страну», «город», «регион» и так далее ... Но вы получаете только названия разных уровней положения.Можно ли получить идентификатор страны, города ....?

Когда я храню данные в базе данных, мне нужно также сохранить идентификатор страны, города вместе с исходным идентификатором.Не хотите хранить названия мест в базе данных, когда много мест имеют одинаковые имена.

1 Ответ

0 голосов
/ 27 мая 2018

Как вы заметили, в массиве компонентов адресов нет идентификаторов мест.Вы не можете получить эту информацию, выполняя только запрос информации о месте.Разработчики уже создали запрос функции в системе отслеживания проблем Google:

Добавить place_id в каждый адрес_компонентов

Вы можете пометить его, чтобы добавить свой голос.В то же время обходной путь для получения идентификаторов мест для страны и населенного пункта заключается в выполнении обратного геокодирования запросов на координаты исходного идентификатора места с типом местоположения и страной.

Например, яесть место ID ChIJEygrJmSYpBIRUXOjvF0QSLw.Запрос деталей для этого места

https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJEygrJmSYpBIRUXOjvF0QSLw&key=MY_API_KEY

дает координаты 41.3886875,2.130554.Теперь я могу выполнить дополнительный запрос обратного геокодирования, чтобы получить идентификаторы мест и стран:

https://maps.googleapis.com/maps/api/geocode/json?latlng=41.3886875%2C2.130554&result_type=country%7Clocality&key=MY_API_KEY

Последний дает мне

  • идентификатор места ChIJ5TCOcRaYpBIRCmZHTz37sEQ (Барселона)
  • место ID ChIJi7xhMnjjQgwR7KNoB5Qs7KY (Испания)

Надеюсь, это поможет!

...