návod ako naimportovať osm databázu do postgisu

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
tabulkapopis
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 5753
krč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 číslo
cesta je way s highway=residential/unclassified/tertiary/secondary/primary/trunk
chcem počet kilometrov
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki