[OSM-Devserver] PostgrSQL hstore Schema

Sven Geggus lists at fuchsschwanzdomain.de
Sa Mär 6 22:46:48 CET 2010


Hallo zusammen,

ich hatte auf der FOSSGIS Konferenz zwar davon geredet aber bis dato noch
keinen benutzbaren Importcode gehabt.

Anbei ist ein rudimentäres osmosis plugin (Danke Jochen) um OSM Daten
in PostgreSQL hstore Tabellen zu schreiben.  Das Ganze ist ein
gehacktes osmosis --write-pgsql-dump

Benutzung siehe README.

Meine Java Kenntnisse sind leider begrenzt, aber immerhin konnte ich
das soweit kriegen um erfolgreich Daten in PostgreSQL importieren.

Für Performance tests sollte das ausreichen.

Die hstore Spalten habe ich mit einem GIN Index versehen.

Aussehen tut das schon mal recht brauchbar, insbesondere für Exoten-tags:

osm_hstore=> select astext(geom) from nodes where (tags->'microbrewery') = 'yes';
           astext            
-----------------------------
 POINT(8.4659961 48.9984055)
 POINT(8.4783565 48.9255838)
 POINT(8.4049357 48.9415549)
 POINT(8.2113454 48.8494092)
 POINT(8.3984698 49.0903591)
 POINT(8.3937762 49.0118583)
 POINT(8.6977064 48.8883749)
 POINT(8.7096945 49.4126545)
 POINT(8.5990209 49.1228578)
 POINT(8.4141454 49.0074672)
(10 Zeilen)

osm_hstore=> select astext(Centroid(linestring)) from ways where ((tags->'microbrewery') = 'yes');
                  astext                  
------------------------------------------
 POINT(8.36873218049843 49.0039944262335)
(1 Zeile)

Ein gehacktes osm2pgsql oder --write-pgsql-change für osmosis hab ich
bisher noch nicht.

Gruss

Sven

[1] Debianpakete für Debian Lenny oder Ubuntu Karmic von
postgresql-8.4-hstore-new lassen sich einfach backporten
http://packages.debian.org/de/sid/postgresql-8.4-hstore-new

-- 
"Those who do not understand Unix are condemned to reinvent it, poorly"
(Henry Spencer)

/me is giggls at ircnet, http://sven.gegg.us/ on the Web