У меня возникла серьезная проблема с обратным геокодированием Google. Я получил географическую информацию с помощью своего ключа API, но я не могу использовать один синтаксис для получения названий городов, поскольку названия городов находятся в другом положении. У меня есть список из почти 2000 координат в Японии. Пожалуйста помоги. Большое спасибо! Поясню подробно
Эти координаты (35.098129999999998, 135.71893) возвращают мне информацию ниже, чтобы захватить город, мне нужно разрезать [2]['short_name'], обратите внимание, что 'types' - это 'locality'.
[{'long_name': 'Unnamed Road', 'short_name': 'Unnamed Road', 'types': ['route']},
{'long_name': 'Kita-ku', 'short_name': 'Kita-ku', 'types': ['political', 'sublocality', 'sublocality_level_1']},
{'long_name': 'Kyōto-shi', 'short_name': 'Kyōto-shi', 'types': ['locality', 'political']},
{'long_name': 'Kyōto-fu', 'short_name': 'Kyōto-fu', 'types': ['administrative_area_level_1', 'political']},
{'long_name': 'Japan', 'short_name': 'JP', 'types': ['country', 'political']}]
Эти координаты (26.2110699999999999, 127.6876) возвращают мне приведенную ниже информацию, чтобы получить название города, которое мне нужно нарезать [4]['short_name'], обратите внимание, что 'types' также является 'locality'.
[{'long_name': '29', 'short_name': '29', 'types': ['premise']},
{'long_name': '4', 'short_name': '4', 'types': ['political', 'sublocality', 'sublocality_level_4']},
{'long_name': '1 Chome', 'short_name': '1 Chome', 'types': ['political', 'sublocality', 'sublocality_level_3']},
{'long_name': 'Higawa', 'short_name': 'Higawa', 'types': ['political', 'sublocality', 'sublocality_level_2']},
{'long_name': 'Naha-shi', 'short_name': 'Naha-shi', 'types': ['locality', 'political']}, {'long_name': 'Okinawa-ken', 'short_name': 'Okinawa-ken', 'types': ['administrative_area_level_1', 'political']},
{'long_name': 'Japan', 'short_name': 'JP', 'types': ['country', 'political']}, {'long_name': '900-0022', 'short_name': '900-0022', 'types': ['postal_code']}]
Эти координаты (35.670479999999998, 139.74091999999999) возвращают мне информацию ниже, чтобы получить название города, мне нужно нарезать [5]['short_name'], обратите внимание, что 'types' - это 'administrative_area_level_1'.
[{'long_name': 'M.Y赤坂', 'short_name': 'M.Y赤坂', 'types': ['premise']},
{'long_name': '11', 'short_name': '11', 'types': ['political', 'sublocality', 'sublocality_level_4']},
{'long_name': '2 Chome', 'short_name': '2 Chome', 'types': ['political', 'sublocality', 'sublocality_level_3']},
{'long_name': 'Akasaka', 'short_name': 'Akasaka', 'types': ['political', 'sublocality', 'sublocality_level_2']},
{'long_name': 'Minato-ku', 'short_name': 'Minato-ku', 'types': ['locality', 'political']},
{'long_name': 'Tōkyō-to', 'short_name': 'Tōkyō-to', 'types': ['administrative_area_level_1', 'political']},
{'long_name': 'Japan', 'short_name': 'JP', 'types': ['country', 'political']},
{'long_name': '107-0052', 'short_name': '107-0052', 'types': ['postal_code']}]
Названия городов находятся в разных позициях в формате JSON, и есть проблема с «типом». Как мне отличить «administrative_area_level_1» от «locality»? Можно ли придумать оператор if, чтобы выбрать именно то, что я хочу? ниже весь код
import googlemaps
import pandas as pd
import numpy as np
gmaps=googlemaps.Client(key='myapikey')
co=[(35.098129999999998, 135.71893),(26.211069999999999, 127.6876),(35.670479999999998, 139.74091999999999)]
for x, y in co:
coor=(x,y)
reverse_geocode_result = gmaps.reverse_geocode(coor)
print (reverse_geocode_result[0]['address_components'])
Кто-нибудь, кто может мне помочь? Я отчаянно нуждаюсь в помощи. Большое спасибо!