2016-05-04 15 views
-1

私は多数のアドレスをジオコードする必要がありますので、これをマルチプロセッシングを念頭に置いて設定しています。私はparallel geocodingを読んだが、これはgeopyを使って対処した。私は代わりにgeocoderを使用します。Python:マルチプロセッシングを使用してアドレスをジオコード化する

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) 

これは、緯度と経度を特定の都市に戻したい場合のアドレスを返します。私はすべてが適切に機能するように少し助けが必要です。

+0

行でなければなりません。前の行で参照している '.latlng'属性を返すことができますか? – larsks

+0

これはあまりにもあなたのコードを慎重に読んで、関数にアドレスを指定してアドレスを返すようにします。 – PyNEwbie

+0

@larsks '.latlng'をどのように返しますか?私は 'address.latlng'を試しました – dustin

答えて

1

あなたgeocode_worker機能は、単にあなたが `あなた` geocode_worker`機能でaddress`を返してきたので、それは、アドレスを返すもちろん
return geocoder.google(address, key = google_key).latlng

関連する問題