OpenStreetMap database e api

47
Architettura Database API Osmosis Convertire L’architettura di OpenStreetMap Luca Delucchi Fondazione Edmund Mach, Piattaforma GIS e Telerilevamento http://gis.cri.fmach.it GFOSS.it M(’)appare Genova 2012, Genova Luca Delucchi M(’)appare Genova 2012, Genova

description

An introduction of database and API of OpenStreetMap (italian language)

Transcript of OpenStreetMap database e api

Page 1: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

L’architettura di OpenStreetMap

Luca Delucchi

Fondazione Edmund Mach, Piattaforma GIS e Telerilevamentohttp://gis.cri.fmach.it

GFOSS.it

M(’)appare Genova 2012, Genova

Luca Delucchi M(’)appare Genova 2012, Genova

Page 2: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

Architettura

Luca Delucchi M(’)appare Genova 2012, Genova

Page 3: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneSchema

Introduzione

Database Managment System:PostgreSQL

Numero di utenti 592.409Numero di punti GPS caricati 2.826.592.946Numero di nodes 1.431.538.373Numero di ways 133.026.354Numero di relations 1.377.599

Luca Delucchi M(’)appare Genova 2012, Genova

Page 4: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneSchema

Introduzione

Database Managment System:PostgreSQL

Numero di utenti 592.409Numero di punti GPS caricati 2.826.592.946Numero di nodes 1.431.538.373Numero di ways 133.026.354Numero di relations 1.377.599

Luca Delucchi M(’)appare Genova 2012, Genova

Page 5: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneSchema

Architettura

Approfondimento: Database, Strutture SQL

Luca Delucchi M(’)appare Genova 2012, Genova

Page 6: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Introduzione

API architettura RESTful per interfacciarsi con il databasecentrale

richiede formato XMLattuale versione 0.6permette interscambio di informazioni sui Changeset,elementi, tracce GPS e utenti

Luca Delucchi M(’)appare Genova 2012, Genova

Page 7: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Introduzione

API architettura RESTful per interfacciarsi con il databasecentralerichiede formato XML

attuale versione 0.6permette interscambio di informazioni sui Changeset,elementi, tracce GPS e utenti

Luca Delucchi M(’)appare Genova 2012, Genova

Page 8: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Introduzione

API architettura RESTful per interfacciarsi con il databasecentralerichiede formato XMLattuale versione 0.6

permette interscambio di informazioni sui Changeset,elementi, tracce GPS e utenti

Luca Delucchi M(’)appare Genova 2012, Genova

Page 9: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Introduzione

API architettura RESTful per interfacciarsi con il databasecentralerichiede formato XMLattuale versione 0.6permette interscambio di informazioni sui Changeset,elementi, tracce GPS e utenti

Luca Delucchi M(’)appare Genova 2012, Genova

Page 10: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Formato .osm

<node id=’1512608819’ timestamp=’2011-12-16T20:40:26Z’uid=’12473’ user=’mikelima’ visible=’true’ version=’2’changeset=’10134032’ lat=’44.4131166’ lon=’8.9299329’>

<tag k=’addr:housenumber’ v=’18’ /><tag k=’addr:street’ v=’Via Cairoli’ /><tag k=’barrier’ v=’entrance’ /><tag k=’foot’ v=’yes’ />

</node>

Luca Delucchi M(’)appare Genova 2012, Genova

Page 11: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Esempi

http://www.openstreetmap.org/api/0.6/map?bbox=44.40,8.97,44.41,8.98

http://www.openstreetmap.org/api/0.6/way/22901331

http://www.openstreetmap.org/api/0.6/way/22901331/1

http://www.openstreetmap.org/api/0.6/trackpoints?bbox=44.40,8.97,44.41,8.98&page=5000

http://www.openstreetmap.org/api/0.6/node/create

Approfondimento: API

Luca Delucchi M(’)appare Genova 2012, Genova

Page 12: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Esempi

http://www.openstreetmap.org/api/0.6/map?bbox=44.40,8.97,44.41,8.98

http://www.openstreetmap.org/api/0.6/way/22901331

http://www.openstreetmap.org/api/0.6/way/22901331/1

http://www.openstreetmap.org/api/0.6/trackpoints?bbox=44.40,8.97,44.41,8.98&page=5000

http://www.openstreetmap.org/api/0.6/node/create

Approfondimento: API

Luca Delucchi M(’)appare Genova 2012, Genova

Page 13: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Esempi

http://www.openstreetmap.org/api/0.6/map?bbox=44.40,8.97,44.41,8.98

http://www.openstreetmap.org/api/0.6/way/22901331

http://www.openstreetmap.org/api/0.6/way/22901331/1

http://www.openstreetmap.org/api/0.6/trackpoints?bbox=44.40,8.97,44.41,8.98&page=5000

http://www.openstreetmap.org/api/0.6/node/create

Approfondimento: API

Luca Delucchi M(’)appare Genova 2012, Genova

Page 14: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Esempi

http://www.openstreetmap.org/api/0.6/map?bbox=44.40,8.97,44.41,8.98

http://www.openstreetmap.org/api/0.6/way/22901331

http://www.openstreetmap.org/api/0.6/way/22901331/1

http://www.openstreetmap.org/api/0.6/trackpoints?bbox=44.40,8.97,44.41,8.98&page=5000

http://www.openstreetmap.org/api/0.6/node/create

Approfondimento: API

Luca Delucchi M(’)appare Genova 2012, Genova

Page 15: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Esempi

http://www.openstreetmap.org/api/0.6/map?bbox=44.40,8.97,44.41,8.98

http://www.openstreetmap.org/api/0.6/way/22901331

http://www.openstreetmap.org/api/0.6/way/22901331/1

http://www.openstreetmap.org/api/0.6/trackpoints?bbox=44.40,8.97,44.41,8.98&page=5000

http://www.openstreetmap.org/api/0.6/node/create

Approfondimento: API

Luca Delucchi M(’)appare Genova 2012, Genova

Page 16: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Esempi

http://www.openstreetmap.org/api/0.6/map?bbox=44.40,8.97,44.41,8.98

http://www.openstreetmap.org/api/0.6/way/22901331

http://www.openstreetmap.org/api/0.6/way/22901331/1

http://www.openstreetmap.org/api/0.6/trackpoints?bbox=44.40,8.97,44.41,8.98&page=5000

http://www.openstreetmap.org/api/0.6/node/create

Approfondimento: API

Luca Delucchi M(’)appare Genova 2012, Genova

Page 17: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Interfacce

DiretteJava - Esempio

Python - PythonOsmApiPerl - Osm.pm

Indirette

Overpass APIXAPI

Luca Delucchi M(’)appare Genova 2012, Genova

Page 18: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Interfacce

DiretteJava - EsempioPython - PythonOsmApi

Perl - Osm.pm

Indirette

Overpass APIXAPI

Luca Delucchi M(’)appare Genova 2012, Genova

Page 19: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Interfacce

DiretteJava - EsempioPython - PythonOsmApiPerl - Osm.pm

Indirette

Overpass APIXAPI

Luca Delucchi M(’)appare Genova 2012, Genova

Page 20: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Interfacce

DiretteJava - EsempioPython - PythonOsmApiPerl - Osm.pm

Indirette

Overpass APIXAPI

Luca Delucchi M(’)appare Genova 2012, Genova

Page 21: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Interfacce

DiretteJava - EsempioPython - PythonOsmApiPerl - Osm.pm

IndiretteOverpass API

XAPI

Luca Delucchi M(’)appare Genova 2012, Genova

Page 22: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneFormatoEsempiInterfacce

Interfacce

DiretteJava - EsempioPython - PythonOsmApiPerl - Osm.pm

IndiretteOverpass APIXAPI

Luca Delucchi M(’)appare Genova 2012, Genova

Page 23: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneEsempi

Osmosis: introduzione

Osmosis è un software Java per gestire i dati OSM

Permette tra l’altro di:

generare dump in formato .osmcarica dump in un databasecomparare due database e crea un diffestrarre dati dentro una bounding box

Luca Delucchi M(’)appare Genova 2012, Genova

Page 24: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneEsempi

Osmosis: introduzione

Osmosis è un software Java per gestire i dati OSMPermette tra l’altro di:

generare dump in formato .osmcarica dump in un databasecomparare due database e crea un diffestrarre dati dentro una bounding box

Luca Delucchi M(’)appare Genova 2012, Genova

Page 25: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneEsempi

Osmosis: introduzione

Osmosis è un software Java per gestire i dati OSMPermette tra l’altro di:

generare dump in formato .osm

carica dump in un databasecomparare due database e crea un diffestrarre dati dentro una bounding box

Luca Delucchi M(’)appare Genova 2012, Genova

Page 26: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneEsempi

Osmosis: introduzione

Osmosis è un software Java per gestire i dati OSMPermette tra l’altro di:

generare dump in formato .osmcarica dump in un database

comparare due database e crea un diffestrarre dati dentro una bounding box

Luca Delucchi M(’)appare Genova 2012, Genova

Page 27: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneEsempi

Osmosis: introduzione

Osmosis è un software Java per gestire i dati OSMPermette tra l’altro di:

generare dump in formato .osmcarica dump in un databasecomparare due database e crea un diff

estrarre dati dentro una bounding box

Luca Delucchi M(’)appare Genova 2012, Genova

Page 28: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneEsempi

Osmosis: introduzione

Osmosis è un software Java per gestire i dati OSMPermette tra l’altro di:

generare dump in formato .osmcarica dump in un databasecomparare due database e crea un diffestrarre dati dentro una bounding box

Luca Delucchi M(’)appare Genova 2012, Genova

Page 29: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneEsempi

Esempi

osmosis –read-apidb host=x database=x user=xpassword=x –write-xml file=planet.osm

osmosis –read-xml file=planet1.osm –read-apidb host=xdatabase=x user=x password=x –derive-change–write-xml-change file=planetdiff-1-2.osc

osmosis –read-xml-change file=planetdiff-1-2.osc–read-xml file=planet1.osm –apply-change –write-xmlfile=planet2.osm

Luca Delucchi M(’)appare Genova 2012, Genova

Page 30: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneEsempi

Esempi

osmosis –read-apidb host=x database=x user=xpassword=x –write-xml file=planet.osm

osmosis –read-xml file=planet1.osm –read-apidb host=xdatabase=x user=x password=x –derive-change–write-xml-change file=planetdiff-1-2.osc

osmosis –read-xml-change file=planetdiff-1-2.osc–read-xml file=planet1.osm –apply-change –write-xmlfile=planet2.osm

Luca Delucchi M(’)appare Genova 2012, Genova

Page 31: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

IntroduzioneEsempi

Esempi

osmosis –read-apidb host=x database=x user=xpassword=x –write-xml file=planet.osm

osmosis –read-xml file=planet1.osm –read-apidb host=xdatabase=x user=x password=x –derive-change–write-xml-change file=planetdiff-1-2.osc

osmosis –read-xml-change file=planetdiff-1-2.osc–read-xml file=planet1.osm –apply-change –write-xmlfile=planet2.osm

Luca Delucchi M(’)appare Genova 2012, Genova

Page 32: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Applicazioni GIS

PostgreSQL/Postgis: osm2pgsql, Imposm, Osm2pgrouting,osm2postgis

Spatialite: spatialite_osm_raw, spatialite_osm_filter,spatialite_osm_map, spatialite_osm_netMapnik e altri software di rendering (anche POVRay)QGISUdig

Luca Delucchi M(’)appare Genova 2012, Genova

Page 33: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Applicazioni GIS

PostgreSQL/Postgis: osm2pgsql, Imposm, Osm2pgrouting,osm2postgisSpatialite: spatialite_osm_raw, spatialite_osm_filter,spatialite_osm_map, spatialite_osm_net

Mapnik e altri software di rendering (anche POVRay)QGISUdig

Luca Delucchi M(’)appare Genova 2012, Genova

Page 34: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Applicazioni GIS

PostgreSQL/Postgis: osm2pgsql, Imposm, Osm2pgrouting,osm2postgisSpatialite: spatialite_osm_raw, spatialite_osm_filter,spatialite_osm_map, spatialite_osm_netMapnik e altri software di rendering (anche POVRay)

QGISUdig

Luca Delucchi M(’)appare Genova 2012, Genova

Page 35: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Applicazioni GIS

PostgreSQL/Postgis: osm2pgsql, Imposm, Osm2pgrouting,osm2postgisSpatialite: spatialite_osm_raw, spatialite_osm_filter,spatialite_osm_map, spatialite_osm_netMapnik e altri software di rendering (anche POVRay)QGIS

Udig

Luca Delucchi M(’)appare Genova 2012, Genova

Page 36: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Applicazioni GIS

PostgreSQL/Postgis: osm2pgsql, Imposm, Osm2pgrouting,osm2postgisSpatialite: spatialite_osm_raw, spatialite_osm_filter,spatialite_osm_map, spatialite_osm_netMapnik e altri software di rendering (anche POVRay)QGISUdig

Luca Delucchi M(’)appare Genova 2012, Genova

Page 37: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Altre applicazioni

GPS (Garmin)

MkgmapGroundTruthOsm2garminGUI

Cellulari

OsmAndNavitMapsforgeGpsmid

Luca Delucchi M(’)appare Genova 2012, Genova

Page 38: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Altre applicazioni

GPS (Garmin)Mkgmap

GroundTruthOsm2garminGUI

Cellulari

OsmAndNavitMapsforgeGpsmid

Luca Delucchi M(’)appare Genova 2012, Genova

Page 39: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Altre applicazioni

GPS (Garmin)MkgmapGroundTruth

Osm2garminGUICellulari

OsmAndNavitMapsforgeGpsmid

Luca Delucchi M(’)appare Genova 2012, Genova

Page 40: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Altre applicazioni

GPS (Garmin)MkgmapGroundTruthOsm2garminGUI

Cellulari

OsmAndNavitMapsforgeGpsmid

Luca Delucchi M(’)appare Genova 2012, Genova

Page 41: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Altre applicazioni

GPS (Garmin)MkgmapGroundTruthOsm2garminGUI

CellulariOsmAnd

NavitMapsforgeGpsmid

Luca Delucchi M(’)appare Genova 2012, Genova

Page 42: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Altre applicazioni

GPS (Garmin)MkgmapGroundTruthOsm2garminGUI

CellulariOsmAndNavit

MapsforgeGpsmid

Luca Delucchi M(’)appare Genova 2012, Genova

Page 43: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Altre applicazioni

GPS (Garmin)MkgmapGroundTruthOsm2garminGUI

CellulariOsmAndNavitMapsforge

Gpsmid

Luca Delucchi M(’)appare Genova 2012, Genova

Page 44: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

GISAltro

Altre applicazioni

GPS (Garmin)MkgmapGroundTruthOsm2garminGUI

CellulariOsmAndNavitMapsforgeGpsmid

Luca Delucchi M(’)appare Genova 2012, Genova

Page 45: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

PromemoriaLicenze

“un software (o un dato) può essere gratuito ma non libero

un software (o un dato) può essere libero, senza escludereaspetti di finanziamento, o commerciali”

Grazie dell’attenzione!

Luca Delucchi M(’)appare Genova 2012, Genova

Page 46: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

PromemoriaLicenze

“un software (o un dato) può essere gratuito ma non libero

un software (o un dato) può essere libero, senza escludereaspetti di finanziamento, o commerciali”

Grazie dell’attenzione!

Luca Delucchi M(’)appare Genova 2012, Genova

Page 47: OpenStreetMap database e api

ArchitetturaDatabase

APIOsmosis

Convertire

PromemoriaLicenze

Le immagini di mappe hanno la seguente licenza “Map data (c) OpenStreetMap (and) contributors,CC-BY-SA”

Luca Delucchi M(’)appare Genova 2012, Genova