[Python] Elenco strade italiane per comune
Pietro
peter.zamb a gmail.com
Sab 31 Dic 2011 16:04:28 CET
2011/12/30 Alberto Abate <alberto.abate a gmail.com>:
> Un saluto a tutti,
> vorrei sottoporvi questo piccolo quesito.
>
> Vorrei realizzare una funzione in python che ricevendo una città italiana,
> mi restituisca i nomi delle sue strade.
> Questo preferibilmente tramite webservice, cioè senza usare database in
> locale.
Ciao, io utilizzerei cloudmade[0], che utilizza come base dati
openstreetmap[1] (un db con dati georeferenziati forniti dagli utenti
protetti da OdbL [2]), che ha delle buone API [3].
Qualcosa tipo:
#---
from cloudmade import api, geocoding, routing, utils
cm = api.API(apikey = 'yourkey', referrer = 'yoursite.it')
def get_data(cityname, objtype):
citydata = cm.find(geocoding.Query(cityname))
citybounds = citydata['bounds']
citybbox = []
[citybbox.extend(i) for i in citybounds]
objs = cm.find(api.geocoding.Query().bbox(citybbox).object_type(objtype) )
return objs['features']
def get_names(ways):
for way in ways:
if 'name' in way['properties'].keys():
yield way['properties']['name']
vrroad = get_data('Verona', 'road')
for name in get_names(vrroad):
print name
#---
Ho fatto questo breve prova, devi solo capire come fare a farti dare
più di 10 risultati... :-)
in alternativa puoi scaricarti tutti i dati relativi all'italia in
formato xml aggiornata settimanalmente [4] e rielaborarteli come
meglio credi...
Ciao e buon ultimo!
Pietro
[0] http://maps.cloudmade.com
[1] http://www.openstreetmap.org
[2] http://opendatacommons.org/licenses/odbl/
[3] http://developers.cloudmade.com/documentation/python-lib/tutorial/
[4] http://download.gfoss.it/osm/osm/
Maggiori informazioni sulla lista
Python