Ich muss eine große Anzahl von Adressen geocodieren, also arbeite ich daran, dies mit multiprocessing einzurichten. Ich lese parallel geocoding, aber dies adressiert mit geopy
. Ich werde stattdessen geocoder
verwenden.Python: Multiprocessing zu Geocode-Adressen verwenden
import geocoder
import multiprocessing as mp
google_key = 'my_key'
addresses = ['tampa, florida', 'peroria, illinois', 'augusta, georgia',
'hanover, new hampshire', 'burlington, vermont']
def geocode_worker(address):
geocoder.google(address, key = google_key).latlng
return address
if __name__ == '__main__':
pool = mp.Pool(processes = (mp.cpu_count() - 1))
result = pool.map(geocode_worker, addresses)
Dies gibt die Adressen wie es ist, wo ich die Breite und Länge zurück mit einer bestimmten Stadt will. Ich brauche ein wenig Hilfe, damit alles richtig funktioniert.
Natürlich ist es die Adresse zurückgibt, weil Sie 'haben in Ihrem' geocode_worker' Funktion zurückgeben address'. Möchten Sie stattdessen das Attribut ".latlng" zurückgeben, auf das Sie in der vorherigen Zeile verwiesen haben? – larsks
Das ist zu albern lesen Sie Ihren Code sorgfältig Sie Adresse an die Funktion liefern und die Adresse – PyNEwbie
@larks wie würde ich '.latlng' zurückgeben? Ich versuchte 'address.latlng' – dustin