Als ich zufällig die VBA von Excel des Datenverarbeitungsteams bei der Arbeit reparierte, wurde ich gefragt: "Herr Atsukinov, haben Sie jemals API in VBA verwendet?" "Nun, ich habe es nie benutzt. Was ist los?" "Ich verwende die Google Map-API, um mit VBA eine Adresse aus Längen- und Breitengrad zu ermitteln, aber es hat nicht funktioniert ..." "Wie" Also, als mir der Codebildschirm gezeigt wurde *** (Ich verstehe überhaupt nicht) *** Das war ein ehrlicher Eindruck. Ich habe nur die API von flickr zusammen mit dem Tutorial zum Herunterladen von Bildern hier verwendet, aber ich verwende die API überhaupt nicht! !! "Übrigens, wie viel verarbeiten Sie diese Daten?" *** 80.000 Zeilen *** Oh... Sie sollten auf jeden Fall APIs und andere Funktionen wie diese verwenden. Aber ehrlich gesagt dachte ich, es wäre einfacher, mit Python damit umzugehen, wenn ich API verwenden würde. "Im Moment werde ich versuchen herauszufinden, ob ich etwas mit Python machen kann." Trotzdem habe ich mich entschlossen, zuerst die Google Maps-API zu untersuchen.
Also habe ich versucht, sofort zu googeln, aber anscheinend stellte sich heraus, dass es "Reverse-Geocoding" ist, um die Adresse von "Breite / Länge" zu erkennen. Die Suche nach einer Adresse, einem Breiten- und Längengrad anhand eines Eigenschaftsnamens oder -namens scheint ein gewöhnliches "Geocing" zu sein. Leider gab es nicht viele Artikel, die diese "umgekehrte Geokodierung" betrafen, und ich konnte den gesuchten Code nicht finden. *** Ich bin es leid, regelmäßig Geokodierungsartikel zu sehen! !! *** *** Selbst wenn ein Code ähnlich dem der umgekehrten Geokodierung an Bord war, bestand das Problem darin, dass die erhaltene Adresse in Englisch, dh in Form von Adresse → Präfektur, und in Alphabeten geschrieben wurde. Zum Beispiel, wenn Sie sich "Tokyo Tower" ansehen -〒 105-0011 4-2-8 Shiba Park, Minato-ku, Tokio Wird nicht angezeigt -2 4-2-8, Shibakoen, Minatoku, Tokiyo Es wird so geschrieben. Dies wäre ein Problem für die nächste Person, die die Adresse liest, und so gelang es mir, einen Weg zu finden, sie auf Japanisch zu schreiben. *** Und gefunden ***
Ich werde den folgenden Code veröffentlichen, also hoffe ich, dass er hilfreich ist. [Leicht verständliche Erklärung (Geocoder / Google Maps)](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
#Speichern Sie den für die Google Maps-API erhaltenen API-Schlüssel in einer Variablen
Key = XXXXX
#Gibt den API-Schlüssel für die Google Maps-API zurück
gmaps = googlemaps.Client(key=Key)
#Speichern Sie einige Breiten- / Längengrade in der Liste
list = [
"35.65858645, 139.745440057962", #Tokyo Turm
"35.71005425, 139.810714099926" #Tokyo Sky Tree
]
#Suchen Sie nach Adressen in der Reihenfolge aus der Liste
for i in list:
results = gmaps.reverse_geocode((i), language='ja')
add = [d.get('formatted_address') for d in results]
print(add[1])
#=>Japan, 105-0011 4-2-8 Shiba Park, Minato-ku, Tokio
#=>Japan, 〒131-0045 1-1-83 Oshiage, Sumida-ku, Tokio
Das Problem ist, dass es am Anfang des Satzes ein kleines zusätzliches Zeichen "Japan" gibt. Ich werde den Code ein wenig ändern, damit ich ihn in die Mitte des Slice schreiben kann.
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, Tokio
#=>〒131-0045 1-1-83 Oshiage, Sumida-ku, Tokio
Ja, es ist eine großartige Arbeit. Es ist die Form, nach der ich gesucht habe. Das Problem scheint jedoch zu sein, dass die Google Maps-API auf bis zu 40.000 kostenlose APIs pro Monat zugreifen kann (Quelle. = ja))) Nun, es gibt möglicherweise nicht viele starke Benutzer, die dies überschreiten, aber denken Sie daran, dass Ihnen eine Gebühr berechnet wird, wenn Sie diese überschreiten.
Recommended Posts