2016-05-04 36 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

当然它返回的地址,因为你'你'geocode_worker'函数返回address'。你是否想要返回前一行中引用的'.latlng'属性? – larsks

+0

这太愚蠢了仔细阅读你的代码,你提供的地址的功能,并返回地址 – PyNEwbie

+0

@larsks我将如何返回'.latlng'?我试过'address.latlng' – dustin

回答

1

geocode_worker功能应该简单地将线
return geocoder.google(address, key = google_key).latlng

相关问题