Die Adressdaten sowie der Breiten- und Längengrad der repräsentativen Punkte wurden unter "Geolonia Addresses Data | japanische Adressen" veröffentlicht.
Referenz: [Kann zur kostenlosen Freigabe von "Adressstammdaten", zur Vereinheitlichung der Notation und zur Konvertierung in Längen- und Breitengrade verwendet werden - INTERTER Watch](https://internet.watch.impress.co.jp/docs/news/1271/298 /index.html)
Mit diesen Daten habe ich einen Befehl für die Konvertierung von Adresse ⇔ Längen- und Breitengrad erstellt, daher werde ich ihn einführen. Benötigt Python 3.8.
Laden Sie zuerst CSV (latest.csv) von "Download" auf der obigen Site herunter. Der heruntergeladene Pfad sei " / path / to / latest.csv
".
Führen Sie den folgenden Befehl aus.
pip install simple-geocoding
python -c '__import__("simple_geocoding").Geocoding("/path/to/latest.csv")'
Der zweite Befehl erstellt eine "Adressliste, KDTree und ein Wörterbuch mit Längen- und Breitengraden mit Adressen als Schlüssel" aus CSV und speichert sie mit pickle im Installationsziel.
simple-Geokodierung 1-chome Marunouchi, Chiyoda-ku, Tokio
>>>
(35.68156, 139.767201)
Wenn es ein Argument gibt, wird es als Adresse betrachtet und in Längen- und Breitengrade umgewandelt. Es wird einfach der adressierte Längen- und Breitengrad zurückgegeben. Zur Vereinfachung wird, selbst wenn es mehrere Breiten- und Längengrade für dieselbe Adresse gibt, nur einer zurückgegeben.
simple-geocoding 35.68156 139.7672
>>>
1-chome Marunouchi, Chiyoda-ku, Tokio
Wenn es zwei Argumente gibt, wird es als Längen- und Breitengrad betrachtet und in eine Adresse konvertiert. Es wird nach dem nächsten Registrierungspunkt in [KD-Tree] gefragt (https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.KDTree.html).
Durch die Verwendung einer Datenstruktur namens KD-Tree ist es möglich, ungleichmäßig vorhandene Punkte effizient zu verwalten. Außerdem ist KD-Tree in Python in scipy enthalten, sodass es einfach zu verwenden ist.
Referenz