Comme il m'est arrivé de réparer le VBA d'Excel de l'équipe de traitement des données au travail, on m'a demandé: "M. atsukinov, avez-vous déjà utilisé l'API dans VBA?" "Eh bien, je ne l'ai jamais utilisé. Qu'est-ce qui ne va pas?" "J'utilise l'API Google Map pour rechercher une adresse à partir de la latitude et de la longitude avec VBA, mais cela n'a pas très bien fonctionné ..." "Comment" Alors quand on m'a montré l'écran de code *** (je ne comprends pas du tout) *** C'était une impression honnête. Je n'ai utilisé que l'API de Flickr avec le tutoriel pour télécharger des images ici, mais je n'utilise pas l'API en premier lieu! !! "Au fait, dans quelle mesure traitez-vous ces données?" *** "80 000 lignes" *** Oh... Vous voudrez certainement utiliser des API et d'autres fonctionnalités de ce genre. Mais honnêtement, je pensais qu'il serait plus facile de le gérer avec Python si j'utilisais l'API. "Pour l'instant, je vais essayer de savoir si je peux faire quelque chose avec Python." Cela dit, j'ai décidé de me pencher d'abord sur l'API Google Maps.
J'ai donc essayé de google immédiatement, mais apparemment, il s'est avéré qu'il s'agissait de "Reverse-Geocoding" pour détecter l'adresse à partir de "latitude / longitude". La recherche d'une adresse, d'une latitude et d'une longitude à partir d'un nom ou d'un nom de propriété semble être une «géolocalisation» ordinaire. Malheureusement, il n'y avait pas beaucoup d'articles sur ce "géocodage inversé", et je n'ai pas trouvé le code que je cherchais. *** J'en ai assez de voir des articles de géocodage réguliers! !! *** *** De plus, même si un code similaire à celui du géocodage inversé était à bord, le problème était que l'adresse obtenue était écrite en anglais, c'est-à-dire sous forme d'adresse → préfecture, et était écrite en alphabets. Par exemple, si vous regardez "Tokyo Tower" ・ 〒105-0011 4-2-8 Parc Shiba, Minato-ku, Tokyo N'est pas affiché ・ 4-2-8, Shibakoen, Minatoku, Tokiyo Ce sera écrit comme ça. Ce serait un problème pour la personne suivante de lire l'adresse, alors j'ai réussi à trouver un moyen de l'écrire en japonais. *** Et trouvé ***
Je publierai le code ci-dessous, donc j'espère qu'il sera utile. [Explication facile à comprendre (Geocoder / Googlemaps)](https://qiita.com/yoshi_yast/items/bb75d8fceb712f1f49d1#%E3%82%84%E3%81%A3%E3%81% 9F% E3% 81% 93% E3% 81% A8% E3% 82% B3% E3% 83% BC% E3% 83% 89)
import googlemaps
#Stocker la clé API obtenue pour l'API Google Maps dans une variable
Key = XXXXX
#Renvoie la clé API pour l'API Google Maps
gmaps = googlemaps.Client(key=Key)
#Stocker une latitude / longitude dans la liste
list = [
"35.65858645, 139.745440057962", #Tour de Tokyo
"35.71005425, 139.810714099926" #Tokyo Sky Tree
]
#Rechercher des adresses dans l'ordre dans la liste
for i in list:
results = gmaps.reverse_geocode((i), language='ja')
add = [d.get('formatted_address') for d in results]
print(add[1])
#=>Japon, 〒105-0011 4-2-8 Shiba Park, Minato-ku, Tokyo
#=>Japon, 〒131-0045 1-1-83 Oshiage, Sumida-ku, Tokyo
Le problème est que, tel quel, il y a un léger caractère supplémentaire «Japon», au début de la phrase. Je vais modifier un peu le code pour que je puisse écrire ceci au milieu de la tranche.
for i in list:
results = gmaps.reverse_geocode((i), language='ja')
add = [d.get('formatted_address') for d in results]
Jusho = add[1]
print(Jusho[3:])
#=>〒105-0011 4-2-8 Shiba Park, Minato-ku, Tokyo
#=>〒131-0045 1-1-83 Oshiage, Sumida-ku, Tokyo
Ouais, c'est un excellent travail. C'est la forme que je recherchais. Cependant, le problème semble être que l'API Google Maps peut accéder à jusqu'à 40 000 API gratuites par mois (source. = ja))) Eh bien, il se peut qu'il n'y ait pas beaucoup d'utilisateurs lourds qui dépassent cela, mais gardez à l'esprit que vous serez facturé si vous le dépassez.
Recommended Posts