Osm2pgsql
Einer der beliebtesten "OSM-Daten zu PostgreSQL/PostGIS-DB" Converter und Loader. (Autor: jburgess777(at)googlemail.com).
Siehe auch:
osm2pgsql is mainly written for rendering data with data. So it only imports tags which are going to be useful for rendering. These tags are defined in the file 'default.style' (svn, trac). It also manipulates data for mapnik (i.e. placing nodes in the centre of gravity of polygons).
Inhaltsverzeichnis
Installation
- Install PostgreSQL and PostGIS and create a postgres user with the same name as your system username (the utility explained next connects always with the default user name).
- Create a database and add hstore (and intarray) support.
- Get osm2pgsql
- Get http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/default.style since this is currently left out in the osm2pgsql delivery.
- Download OSM dump - See Planet.osm for mirrors and partial extracts.
- Download OpenJUMP from http://www.openjump.org. Nightly build is recommended.
- run osm2pgsql like this:
> osm2pgsql -d <pg_database> --hstore <osmdumpname.osm> or > osm2pgsql -c -d liechtenstein -U postgres -W -H localhost -P 5432 -s -k -x -p osm -S default.style ..\liechtenstein.osm.bz2
- Everything will be automatic after that and the result is ready-to-use PostGIS tables '_point', '_line' and '_polygon' containing OSM data.
Output Database
Original-Dokumentation der Schemata von OSM und Osm2pgsql:
- osm2pgsql schema: Osmpgsql database description (default.style)
- Original OSM schema: pgsnapshot_schema_0.6
- Artikel zum Laden von OSM Daten, "Loading OpenStreetMap data into PostGIS: An Almost Idiot's Guide": [1]
Overview with notes on the Osm2pgsql output schema (default.style):
- Table group 'OSM original'
- osm_nodes:
- osm_ways:
- osm_rels: The member attribute is an array with IDs, where all node members come first, then all way members, then all relation members, and way_off is the index of the first way member and rel_off the index of the first relation member.
- Table group 'Osm2pgsql':
- osm_point: with point geometry
- osm_line: with polyline geometry
- osm_polygon: with polygon geometry (one of the unique features of Osm2pgsql!)
- osm_roads: a special table with polyline geometry
Style File
Style File (Default.style):
-x ... node,way osm_version int linear oder node,way osm_version int4 linear
Tipps+Tricks
If you want to add a new key but avoid re-importing the full database, you can add the key to osm2pgsql's style file, somehow generate an .osm file that contains only the objects that have this tag, wrap this .osm file into a "<osmChange><modify>...</modify></osmChange>" instead of "<osm>...</osm>" and throw it at osm2pgsql in append mode.