Estrarre le coordinate dei comuni da OSM

2,704 views
Skip to first unread message

Andrea Zedda

unread,
Jan 22, 2013, 12:22:53 PM1/22/13
to spaghett...@googlegroups.com
Ciao a tutti,
sto facendo qualche mappetta sulla scia dei tutorial di napo.
son bloccato però da tempo con una cosetta semplice ma fastidiosa che non riesco a risolvere del tutto.
Praticamente nella mappa devo inserire un layer con i punti corrispondenti ai comuni italiani, quindi mi servirebbero le coordinate di ciascun centro abitato.
A quanto pare l'ISTAT non ha reso disponibili file del genere (nel sito trovo solo gli shape, e quindi le aree dei territori comunali), l'archivio geonames.org mi pare faccia un po' di confusione tra comune e località e in più non rende disponibili le informazioni con città con meno di 1000 abitanti.
Stavo quindi pensando di estrarre il tutto da openstreetmap, magari utilizzando osmosis, ma non l'ho mai fatto e in giro non trovo nessuna guida "for dummies" che mi possa dare una mano.
avete qualche consiglio?

p.s.
mi son divertito un sacco al raduno, quando lo rifacciamo?

Maurizio Napolitano

unread,
Jan 22, 2013, 12:34:07 PM1/22/13
to spaghett...@googlegroups.com
Acciderbola
Mi sono scordato di farvi una panoramica sui dati di openstreetmap e
di come si estraggono
SGRUNT!

Allora .. hai diverse vie:
- ti scarichi un file .osm da http://download.gfoss.it/osm/osm/
e poi usi strumenti di conversione (ma te lo spiegho in altra email,
ora sono di fretta)
diciamo che osmosis fa al caso tuo (cerca sul wiki di openstreetmap)
- usi le overpassapi
(idem di sopra)
- usi le xapi
a farla easy
vai qui
http://open.mapquestapi.com/xapi/
Dove c'e' l'esempio lasci "node" e metti come tag "place=*"
Usando l'asterisco ti prendi tutti i place definiti in osm
http://wiki.openstreetmap.org/wiki/Map_Features#Places
Se tu volessi solo le citta' di una certa dimensione ti basterebbe
"place=city"

Ti selezioni l'area geografica e premi "run"
questo ti genera un file .xml che puoi importare in qgis attraverso
il plugin openstreetmap (devi scegliere "load download osm file")
ATTENZIONE: l'area di interrogazione non puo' essere troppo grande)

Questa url ti produce un file osm della zona di Cagliari
http://open.mapquestapi.com/xapi/api/0.6/node[place=*][bbox=8.495911703616851,38.94892466626958,9.594544516072988,39.42790133247652]

Causa questione delle dimensioni dell'area dove muoversi, meglio fare
il download
del file .osm dal sito di gfoss.it e usare osmosis.
Se non erro anche qui c'è il plugin per quantum gis.

Fammi sapere e ... scusa se non ho risposto in maniera esauriente.

Ciao




2013/1/22 Andrea Zedda <andrea...@gmail.com>:
--
Maurizio "Napo" Napolitano
http://de.straba.us

ilmistra

unread,
Jan 22, 2013, 12:42:23 PM1/22/13
to spaghett...@googlegroups.com
Ciao Andrea,
intanto un chiarimento....centro abitato o comune? L'ISTAT fornisce il db delle località (comuni, ma anche frazioni, case sparse, bricchi...raggruppamenti di edifici riconoscibili da un nome insomma) che sono altra cosa ancora rispetto ai "centri abitati". Che per intenderci sono quelli che i comuni devono mappare per poterti dare la multa perchè hai superato il limite dei 50 kmh.
Il comune invece è un territorio che in moltissimi casi presentano delle exclavi ("pezzi di comune" esterni al confine principale). Questo per dire...e chiudo il noioso pistolotto...che se anche ti prendi gli shapefile Istat dei confini e crei in automatico un tema puntuale dei baricentri dei poligoni, di fatto vai a generare più punti degli 8000 e fischia comuni italiani.

E comunque vedo che FastNapo ti ha già detto come fare con OSM, anche se mi par di capire che va fatto a pezzi...dico bene?

In QGis, prova sotto gli "strumenti di geometria"..troverai Centroidi di Poligoni. dagli in pasto lo shape e ti ritrovi dei punti. Con il problema di cui sopra.


Andrea Zedda

unread,
Jan 22, 2013, 12:45:55 PM1/22/13
to spaghett...@googlegroups.com
Grande Napo, come sempre!
ottime indicazioni, per far quel che devo fare credo mi basti un xml che poi convertirò con le dovute maniere in un semplice csv che poi caricherò come layer in tilemill.
Per ora ho estratto 2 xml, uno con la Sardegna Nord, e uno con la Sardegna Sud.
Appena ci metto un po' le mani farò sapere.
per ora un grosso grazie

Irene Celino

unread,
Jan 22, 2013, 12:46:19 PM1/22/13
to spaghett...@googlegroups.com
immagino che il risultato non sia affatto lo stesso, ma non si può calcolare il centroide della shape di ciascun comune per avere delle coordinate del "centro"?
--

    " If you understand what you're doing,
           you're not learning anything. "

Andrea Zedda

unread,
Jan 22, 2013, 12:49:54 PM1/22/13
to spaghett...@googlegroups.com
intendo centro abitato, o comunque quel punto che convenzionalmente nelle classiche cartine geografiche indica il comune. Ho pensato anche io al fatto di usare il baricentro, ma visivamente darebbe un informazione abbastanza fuorviante, proprio perché nelle mappe siamo abituati ad associare il punto del comune laddove è situato il centro abitato.
Provo la napo way, tanto ho un po' bluffato perché, per ora, non mi servono gli 8000 comuni italiani ma gli appena 377 sardi ;P

Andrea Zedda

unread,
Jan 22, 2013, 2:20:05 PM1/22/13
to spaghett...@googlegroups.com
Funziona tutto alla grande! Ho usato le xapi di mapquest, importato su qgis, salvato come geojson e spiattellato su tilemill.
YEAHH grazie napo e grazie a tutti per i consigli!

Andrea Nelson Mauro

unread,
Jan 22, 2013, 2:25:36 PM1/22/13
to spaghett...@googlegroups.com
Andrea perché non scrivi un how to con screenshot se hai tempo? magari a qualcuno serve (a me no, non riuscirei: sono troppo geolamer :P)

Andrea Zedda

unread,
Jan 22, 2013, 2:29:37 PM1/22/13
to spaghett...@googlegroups.com
Si è una buona idea. Magari faccio il tutto quando finisco la mappa per bene


Il giorno 22 gennaio 2013 20:25, Andrea Nelson Mauro <andrea.ne...@gmail.com> ha scritto:
Andrea perché non scrivi un how to con screenshot se hai tempo? magari a qualcuno serve (a me no, non riuscirei: sono troppo geolamer :P)



--
Andrea Zedda
mobile: 3283774480
skype: andria.tzedda
twitter: @Andria_Tzedda
-----------------------------------
Kode srl
via Gioacchino Volpe, 74 56121 Ospedaletto (Pisa)
http://kode-solutions.net
-----------------------------------
Sardinia Open Data
http://sardiniaopendata.org/
-----------------------------------

marco calderisi

unread,
Jan 22, 2013, 4:23:05 PM1/22/13
to spaghett...@googlegroups.com, spaghett...@googlegroups.com
Montaggio video del lecca..mi raccomando!!
M

Inviato da iPad

Alfredo Serafini

unread,
Jan 22, 2013, 7:58:21 PM1/22/13
to spaghett...@googlegroups.com
leggermente OT vi segnalo anche questo:

in alternativa a geonames

jenkin

unread,
Jan 23, 2013, 4:35:08 AM1/23/13
to spaghett...@googlegroups.com
C'è un alternativa per ottenere le coordinate geografiche dei comuni italiani...

Qui lo shapefile... sono quelli del 2011, che si sovrappongono ai territori definiti dallo shapefile dell'ISTAT com2011_g/

Ciao!

Maurizio Napolitano

unread,
Jan 23, 2013, 6:14:16 AM1/23/13
to spaghett...@googlegroups.com
2013/1/22 ilmistra <p.mist...@gmail.com>:
> Ciao Andrea,
> intanto un chiarimento....centro abitato o comune? L'ISTAT fornisce il db
> delle località (comuni, ma anche frazioni, case sparse,
> bricchi...raggruppamenti di edifici riconoscibili da un nome insomma) che
> sono altra cosa ancora rispetto ai "centri abitati". Che per intenderci sono
> quelli che i comuni devono mappare per poterti dare la multa perchè hai
> superato il limite dei 50 kmh.

Concordo fino qui ma sono scettico per quanto riportato qui sotto

> Il comune invece è un territorio che in moltissimi casi presentano delle
> exclavi ("pezzi di comune" esterni al confine principale). Questo per
> dire...e chiudo il noioso pistolotto...che se anche ti prendi gli shapefile
> Istat dei confini e crei in automatico un tema puntuale dei baricentri dei
> poligoni, di fatto vai a generare più punti degli 8000 e fischia comuni
> italiani.


Molti comuni hanno delle enclaves all'interno di altri comuni, pertanto,
il vettoriale che descrive i confini comunali, puo' avere piu' geometrie
che descrivono lo stesso comune con lo stesso id, pertanto, l'estrazione
dei centroidi delle poligonali, puo' creare molti punti con lo stesso nome.
In allegato c'e' uno screenshot con i dati dei confini amministrativi del
Trentino, piazzato sulla zona della val di sole.
Ho messo in evidenza che il comune di Pellizzano si estende su 3 aree,
quella pero' che contiene il paese e' pero' l'area ad est.
Ho preso il vettoriale dei comuni del trentino dal geoportale
http://www.territorio.provincia.tn.it/geodati/867_Limite_di_Comune_Amministrativo_12_12_2011.zip
estratto i centroidi, usato questi per piazzare le etichette (ed un
bollino rosso), inserito i confini,
messo in evidenza quelli la cui query risultava associata al comune di
pellizzano e colorato questi confini
in rosso.
Messa gmaps come sfondo (in osm c'erano troppi dettagli a quel livello
di zoom per capire dove si trova
il paese), e segnato con un cerchietto giallo dove google maps mette
l'etichetta di dove si trova il paese.

Questa particolarita' dell'enclave mi sembra introduca un errore,
nell'utilizzo dei centroidi, molto piu'
alto che definire quali siano le coordinate da usare per indicare un centroide.

In OpenStreetMap solitamente si usano le coordinate del municipio, o
della piazza centrale o comunque del baricentro
sociale della zona.
Se non erro ISTAT aveva rilasciato un file con le coordinate dei
toponimi, che e' poi entrato in OpenStreetMap grazie
al lavoro della comunita', e che poi, nel tempo, e' andato migliorando.

> E comunque vedo che FastNapo ti ha già detto come fare con OSM, anche se mi
> par di capire che va fatto a pezzi...dico bene?

La cosa migliore e' usare osmosis scaricandosi il file raw di openstreetmap

geofabrik offre la conversione in shapefile di alcuni temi
http://download.geofabrik.de/openstreetmap/europe/ (900mb per l'Italia
compressi)
oltre che il raw data (quindi tutto) in formato .osm (che e' xml) e
.pbf (praticamente
una sorta di json binario pensato da goole) rispettivamente di 1gb e
di 600Mb compressi.

Per dati piu' "zonali" consiglio di pescare da gfoss.it
http://download.gfoss.it/osm/osm/

Le coordinate sono espresse in EPSG:4326, ergo WGS84
centroidi_pellizzano.png

Maurizio Napolitano

unread,
Jan 23, 2013, 6:25:55 AM1/23/13
to spaghett...@googlegroups.com
2013/1/22 Andrea Zedda <andrea...@gmail.com>:
> Funziona tutto alla grande! Ho usato le xapi di mapquest, importato su qgis,
> salvato come geojson e spiattellato su tilemill.
> YEAHH grazie napo e grazie a tutti per i consigli!

Visto che usi tilemill, sempre fra le cose da mostrarvi che c'erano, ho saltato
a pie' pari il modo di trasformare un mbtiles in "piastrelle" tms: ovvero avere
l'albero delle directory da cui distribuire la mappa.

Il formato mbtiles non e' altro che un file sqlite che contiene tutte
le immagini
a cui sono associati tre variabili: il piano dello zoom, la riga e la colonna.
Attraverso lo script mb-util
https://github.com/mapbox/mbutil
e' possibile estrarre il contenuto del file .mbtiles e generarsi
quindi l'albero.
Il vantaggio e' che quindi, un lavoro prodotto con tilemill, puo' essere poi
distribuito attraverso un qualsiasi webserver senza tanti problemi.

Poi, il formato mbtiles ha comunque i suoi vantaggi, infatti, Mapbox, lo
offre non solo come base per il suo cloud (velocissimo) ma anche per
poter lavorare su mappe offline sui tablet.
Fra i vantaggi quello di dare gli update offrendo il download delle
sole "piastrelle" che sono state aggiornate.

per capirci meglio
Questa e' la "piastrella" che si trova al livello 16 , alla riga
34833 e colonna 23702
http://otile1.mqcdn.com/tiles/1.0.0/osm/16/34833/23702.png
questa il corrispettivo al livello 0, riga 0, colonna 0
http://otile1.mqcdn.com/tiles/1.0.0/osm/0/0/0.png
Lo stesso vale per google maps
es.
https://mts0.google.com/vt/lyrs=m@206300508,psm|gid:QVj4HILEMBm95PU_w1DRqg&x=0&y=0&z=0
(da notare le assegnazioni a 0 di x, y e z)

Maurizio Napolitano

unread,
Jan 23, 2013, 6:27:14 AM1/23/13
to spaghett...@googlegroups.com
> geofabrik offre la conversione in shapefile di alcuni temi
> http://download.geofabrik.de/openstreetmap/europe/ (900mb per l'Italia
> compressi)
> oltre che il raw data (quindi tutto) in formato .osm (che e' xml) e
> .pbf (praticamente
> una sorta di json binario pensato da goole) rispettivamente di 1gb e
> di 600Mb compressi.


per la serie: me le faccio e me le dico
Ho scaricato il file shape dell'italia di geofabrik ed ho visto che
esiste il vettoriale dei toponimi.
Ne ho fatto uno zip
https://dl.dropbox.com/u/1969597/places_osm.zip

Maurizio Napolitano

unread,
Jan 23, 2013, 6:28:20 AM1/23/13
to spaghett...@googlegroups.com
2013/1/23 jenkin <alessio....@gmail.com>:
> C'è un alternativa per ottenere le coordinate geografiche dei comuni
> italiani...
> scaricare i dati da dataninja!
> http://dataninja.it/shapes/maps/it/ISTAT/2011/italia/dataset_ISTAT_Italia_2011.ods

Come hai generato il dataset?
Intendo, a partire da quale base?

Ciao

ilmistra

unread,
Jan 23, 2013, 7:19:19 AM1/23/13
to spaghett...@googlegroups.com
"Il vantaggio e' che quindi, un lavoro prodotto con tilemill, puo' essere poi
distribuito attraverso un qualsiasi webserver senza tanti problemi. "

Napo, una richiesta un pò troppo particolareggiata forse... ma la resa di un tile server che invece di semplici immagini usa una query a sqlite in cui c'è caricato tutto, nella tua esperienza, quanto degrada la risposta dei server? Comodissimo per spostare vagonate di piastrelle, ma non riesco poi a salvarle sui cloud solo storage, tipo S3 di Amazon tanto per non fare pubblicità.

E ancora, già che ci sono, nella tua wikinomica conoscenza, qualcosa che risolva con efficacia in problema dei "bordi" delle piastrelle? Della serie, il nome del comune generato da un punto che sta ai margini di una piastrella, crea una scritta che sta un po sull'una, e un po sull'altra...mannaggia. Non mi serve la soluzione, ma un bell'indirizzo dei tuoi di qualcuno che lo ha risolto una volta per tutte!

jenkin

unread,
Jan 23, 2013, 8:46:52 AM1/23/13
to spaghett...@googlegroups.com

Maurizio Napolitano

unread,
Jan 23, 2013, 9:02:52 AM1/23/13
to spaghett...@googlegroups.com
2013/1/23 jenkin <alessio....@gmail.com>:
Mi sa che faccio un commento perche' quel "le coordinate sono presi da
servizi vari" vuol dire il tutto e il contrario di tutto :)
Le coordinate che descrivono un toponimo sono spesso discutibili. Cosa
si mappa? Il centro della poligonale? il baricentro sociale?
l'ingresso più vicino all'area pedonale? la piazza principale? il
campanile? il municipio? il cartello più a sud? più a nord? E se poi
si tratta di una località?
Sarebbe bello fossero segnati i servizi da cui ha ricostruito i dati.

In ogni caso:
- il vettoriale ricavato da openstreetmap può essere ritenuto una buona fonte
https://dl.dropbox.com/u/1969597/places_osm.zip
(lo dico per le leggi del crowdsourcing)
- lo stesso vale per quanto derivato da Wikipedia, come:
it.dbpedia.org o wikilocations.org
- idem sul caso di geonames.org
http://www.geonames.org/export/


PS:
cmq manca la licenza

Irene Celino

unread,
Jan 23, 2013, 9:08:01 AM1/23/13
to spaghett...@googlegroups.com
in realtà c'è scritto che servizi ha usato: google e yahoo!
quindi, sta violando i termini di utilizzo...


--


Maurizio Napolitano

unread,
Jan 23, 2013, 9:09:45 AM1/23/13
to spaghett...@googlegroups.com
2013/1/23 Irene Celino <irene....@gmail.com>:
> in realtà c'è scritto che servizi ha usato: google e yahoo!

Allora sono orbo :)

> quindi, sta violando i termini di utilizzo...

... sob ...
anche se la mia teoria è che, i dati geografici sono di pubblico
dominio per definizione.
Chiaramente la mia è una frase forte, ma chiunque può raccogliere dati
che descrivono il territorio e, ai nostri giorni, più di prima.

ilmistra

unread,
Jan 23, 2013, 9:25:04 AM1/23/13
to spaghett...@googlegroups.com
"...i dati geografici sono di pubblico
dominio per definizione" ....Napo..wow...che outing!
Concordo sui dati "visibili", ma su quelli "nascosti" , sarebbe bello se così fosse.

Maurizio Napolitano

unread,
Jan 23, 2013, 9:33:47 AM1/23/13
to spaghett...@googlegroups.com
2013/1/23 ilmistra <p.mist...@gmail.com>:
> "Il vantaggio e' che quindi, un lavoro prodotto con tilemill, puo' essere
> poi
> distribuito attraverso un qualsiasi webserver senza tanti problemi. "
>
> Napo, una richiesta un pò troppo particolareggiata forse... ma la resa di un
> tile server che invece di semplici immagini usa una query a sqlite in cui
> c'è caricato tutto, nella tua esperienza, quanto degrada la risposta dei
> server?

Non ho metodi di comparazione per giudicare.
Ho distribuito file mbtiles solo via mapbox, quindi non posso fare paragoni.

> Comodissimo per spostare vagonate di piastrelle, ma non riesco poi a
> salvarle sui cloud solo storage, tipo S3 di Amazon tanto per non fare
> pubblicità.

mmm ...
non puoi spostare il file e poi con mb-util aprirlo sul server?

> E ancora, già che ci sono, nella tua wikinomica conoscenza, qualcosa che
> risolva con efficacia in problema dei "bordi" delle piastrelle? Della serie,
> il nome del comune generato da un punto che sta ai margini di una
> piastrella, crea una scritta che sta un po sull'una, e un po
> sull'altra...mannaggia. Non mi serve la soluzione, ma un bell'indirizzo dei
> tuoi di qualcuno che lo ha risolto una volta per tutte!

IMHO:
in questo caso penso che sarebbe meglio gestire le label con un layer a se
che magari le gestisce runtime (esempio wms o inviando un geojson al client)

Penso che potresti cercare o chiedere da stamen
Infatti qui trovi la famosissima water color senza etichette
http://maps.stamen.com/watercolor/#6/41.552/12.573
e qui invece con la toponomastica
http://content.stamen.com/files/cartography/index_watercolor.html#6.00/41.552/12.573

famme sape'... cosi' aggiungiamo una pagina al wiki
(wikinomica conoscenza non lo avevo mai sentito, cmq guarda che sono
lontano anni luce da chi ne sa davvero)

Andrea Zedda

unread,
Jan 23, 2013, 5:23:18 PM1/23/13
to spaghett...@googlegroups.com
Napo, potresti farmi un esempio di estrazione da un file osm con osmosis?

Maurizio Napolitano

unread,
Jan 24, 2013, 4:02:16 PM1/24/13
to spaghett...@googlegroups.com
2013/1/23 Andrea Zedda <andrea...@gmail.com>:
> Napo, potresti farmi un esempio di estrazione da un file osm con osmosis?

http://wiki.openstreetmap.org/wiki/IT:Osmosis

Andrea Zedda

unread,
Jan 25, 2013, 1:33:02 PM1/25/13
to spaghett...@googlegroups.com
tnx!
Per la cronaca: ho tirato giù un csv (che è  un formato sempre comodo e maneggevole) con le coordinate dei centri abitati dei comuni della Sardegna.
Per chi fosse interessato lo postete scaricare qua: http://sardiniaopendata.org/dati/download/
Reply all
Reply to author
Forward
0 new messages