[Python] R: Elenco strade italiane per comune
Alberto Abate
alberto.abate a gmail.com
Mar 3 Gen 2012 15:32:23 CET
>
> #!/usr/bin/python
>
>
>> from pygeocoder import Geocoder, GeocoderResult
>
> from time import sleep
>
>
>> def frange(start,end,step):
>
> return map(lambda x: x*step, range(int(start*1./step),int(end*1./step)))
>
>
>>
>> results = Geocoder.geocode('Galatina')
>
>
>> geometry = results.raw[0]['geometry']
>
> max_lat = geometry['bounds']['northeast']['lat']
>
> min_lat = geometry['bounds']['southwest']['lat']
>
>
>> max_lon = geometry['bounds']['northeast']['lng']
>
> min_lon = geometry['bounds']['southwest']['lng']
>
>
>> print min_lat, max_lat
>
>
>> strade = []
>
> i = 0
>
> step = 0.0010000
>
>
>> for lat in frange(min_lat, max_lat, step):
>
> for lon in frange(min_lon, max_lon, step):
>
> indirizzo = Geocoder.latlng_to_address(lat, lon)
>
> # sleep(5)
>
> if indirizzo not in strade:
>
> strade.append(str(lat)+'_'+str(lon)+'_'+indirizzo)
>
> i += 1
>
>
>> print 'Count: ',i
>
>
>> strade.sort()
>
> for s in strade:
>
> print s
>
>
>
Sto sperimentando una soluzione da pazzi: infatti funziona parzialmente ;-))
Come da codice sopra stavo usando pygeocoder per fare una scansione
dei 'bounds' cioč del rettangolo sulle google maps con longitudine e
latitudine.
Usando poi la funzione *Geocoder.latlng_to_address(lat, lon) *cioč
una forma di reverse_geocode, ottengo il nome della strada che salvo nella
lista strade.
Il problema č che le api di google consentono di effettuare solo 2500 query
al giorno,
quindi si ottiene un bel OVER_QUERY_LIMIT
Avete idea su come bypassare il limite?
Ho letto che forse con la funzione sleep potrei rallentare le query, ma per
oggi
non posso provarlo...
Ho scaricato qualche file in formato osm (openstreetmap), ma non mi sembrano
molto comodi e affidabili per i nomi delle strade; la soluzione offline non
mi piace molto.
* *
-------------- parte successiva --------------
Un allegato HTML č stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120103/699dca00/attachment.html>
Maggiori informazioni sulla lista
Python