nastavenie postgis:
inštalácia balíčkov postgresql-8.3-postgis (alebo inú verziu, ako závislosti nainštaluje aj postgres databázu a postgis) a asi aj libpostgis-java (kvôli osmosis)
základné príkazy pre postgres: mysql vs. psql
vytvorenie postgis DB osm a usera osmuser (cesty sa môžu meniť podľa distribúcie):
su postgres createdb osm createlang plpgsql osm psql -d osm -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql psql -d osm -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql createuser osmuser; echo "GRANT ALL PRIVILEGES ON DATABASE osm to osmuser; alter role osmuser password 'osm';" | psql -d osm echo "grant all on spatial_ref_sys to osmuser; grant all on geometry_columns to osmuser;" | psql -d osm exit
ako užívateľ potom vytvoríme schému a naimportujeme pomocou osmosis. Postgres databáza stúpne o 400mb ak má bz2 dump 19mb (pri 2,5GB dumpe je to 56GB).
psql -d osm -f script/pgsql_simple_schema_0.6.sql ./bin/osmosis --read-xml file="freemap/europe/slovakia.osm.bz2" --write-pgsql database="osm" user="osmuser" password="osm"
(ak hádže divnú chybu, kuk)
niekedy osmosis nadáva čosi typu "duplicate node". dá sa to vyriešiť (pri osmosis vyššie ako .32)
echo "<osm></osm>" > empty.osm osmosis --rx slovakia.osm.bz2 --rx empty.osm --dc --sort-change-0.6 --simc --wxc good.osc osmosis --rxc good.osc --rx empty.osm --ac --wx slovakia.osm os
potom budeme mať kompletnú databázu
| tabulka | popis |
|---|---|
| geometry_columns | tabuľka |
| node_tags | tagy v nodoch |
| nodes | |
| relation_members | |
| relation_tags | |
| relations | |
| schema_info | |
| spatial_ref_sys | |
| users | |
| way_nodes | |
| way_tags | |
| ways |
existuje aj osm2pgsql
Ukážka
zistiť krčmy v Bratislavskom starom meste
hranica Bratislavy, Staré mesto je relácia s číslom 5753krčma je node s amenity=pub
chcem názov a koordináty
Dĺžka ciest v okrese Košice
hranica Košíc je relácia číslocesta je way s highway=residential/unclassified/tertiary/secondary/primary/trunk
chcem počet kilometrov