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