2011/12/30 Alberto Abate <alberto.ab...@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/ _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python