You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#1 2013-07-16 14:38:50
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Zugriff auf PostGIS-DB mittels QGIS
hi!
nachdem nun meine PostGIS-DB wohl erfolgreich aufgesetzt worden (-> http://forum.openstreetmap.org/viewtopic.php?id=21810)ist und ich die Daten von Schleswig-Holstein gelesen haben soll möchte ich an QGIS mit der ersten Verbindung versuchen.
Nicht das ich gleich wieder aufgebe - aber irgendwie kommt mir das Ergebnis merkwürdig vor.
Zunächst habe ich eine Verbingung versucht zu erstellen und der Test war auch erfolgreich.
Dann wurde da aber nur ein Layer angezeigt für die Nodes...
und erst als ich auch die geometrielosen Tabellen habe listen lassen wurden auch die Ways angezeigt.
Gibt es eine Erklärung dafür oder kann der Osmosis-Import noch etwas verschluckt haben obwohl es zu keiner Fehlermeldung gekommen ist ?
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#2 2013-07-16 14:47:47
- gis_jam
- Member
- Registered: 2011-10-14
- Posts: 81
Re: Zugriff auf PostGIS-DB mittels QGIS
Sind die fraglichen Tabellen in der Tabelle geometry_columns gelistet? Wenn nicht, musst du die da noch eintragen.
Grüße, gis_jam
Last edited by gis_jam (2013-07-16 14:48:00)
Offline
#3 2013-07-16 14:53:53
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Re: Zugriff auf PostGIS-DB mittels QGIS
hi !
SELECT * FROM geometry_columns
liefert nur 3 Einträge ...
Sieht nicht toll aus - aber wieso? Kann man diese nachlesen ?
Kann man eigentlich irgendwie die Tabellenwerte formatiert übernehmen damit man nicht immer über ein Bild gehen muss?
Gruß Jan :-)
Last edited by Lübeck (2013-07-16 14:54:18)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#4 2013-07-16 15:05:21
- gis_jam
- Member
- Registered: 2011-10-14
- Posts: 81
Re: Zugriff auf PostGIS-DB mittels QGIS
Ich hab das hier nicht komplett mitgeschnitten und weiß nicht, was Osmosis da alles anstellt. Aber normalerweise werden die korrekten Werte automatisch in die Tabelle geometry_columns eingetragen, wenn mit Hilfe von AddGeometryColumn eine Spalte mit Geometrie an eine vorhandene Tabelle angefügt wird. Auch beim Import von Shapefiles mittels shp2pgsql werden die korrekten Werte eingetragen. Sollte das alles nicht stattgefunden haben kann man das aber auch noch nachträglich mittels
INSERT INTO geometry_columns (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, type) VALUES ('osm','public','tabellenname', 'geometriespalte', dimensionen, epsg-code, 'typ');
eintragen (so oder ähnlich).
Grüße, gis_jam
Last edited by gis_jam (2013-07-16 15:17:57)
Offline
#5 2013-07-16 15:11:56
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Re: Zugriff auf PostGIS-DB mittels QGIS
Hi !
wenn das immer alles so einfach wäre ....
FEHLER: Spalte »spatial_index_enabled« von Relation »geometry_columns« existiert nicht
LINE 1: ..., f_geometry_column, coord_dimension, srid, type, spatial_in...
^********** Fehler **********
FEHLER: Spalte »spatial_index_enabled« von Relation »geometry_columns« existiert nicht
SQL Status:42703
Zeichen:93
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#6 2013-07-16 15:18:58
- gis_jam
- Member
- Registered: 2011-10-14
- Posts: 81
Re: Zugriff auf PostGIS-DB mittels QGIS
Hi !
wenn das immer alles so einfach wäre ....
Habe mein ursprüngliches Posting angepasst. Das Schema der geometry_columns kann variieren...
gis_jam
Offline
#7 2013-07-16 15:24:30
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Re: Zugriff auf PostGIS-DB mittels QGIS
hi !
nach dem aktuellen SQL aus #4 ...
FEHLER: Spalte »dimensionen« existiert nicht
LINE 1: ...'osm','public','tabellenname', 'geometriespalte', dimensione...
^********** Fehler **********
FEHLER: Spalte »dimensionen« existiert nicht
SQL Status:42703
Zeichen:184
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#8 2013-07-16 15:26:49
- gis_jam
- Member
- Registered: 2011-10-14
- Posts: 81
Re: Zugriff auf PostGIS-DB mittels QGIS
Äh, du solltest die einzutragenden Beispielwerte durch die tatsächlichen Werte ersetzen. Also für dimensionen z.B. eine 2, wenn deine Daten nicht über einen z-Wert für die Höhe verfügen...
gis_jam
Offline
#9 2013-07-16 15:31:16
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Re: Zugriff auf PostGIS-DB mittels QGIS
hi !
jetzt wo Du es sagst verstehe ich was Du meinst.
Aber wie Du schon schreibst müßte das automatisch erfolgen .... kann man das nicht vom System machen lassen. Ich weiß leider noch nicht so ganz was da fehlt!??!?!
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#10 2013-07-16 15:36:32
- gis_jam
- Member
- Registered: 2011-10-14
- Posts: 81
Re: Zugriff auf PostGIS-DB mittels QGIS
kann man das nicht vom System machen lassen
Wie gesagt, normalerweise wird die Tabelle geometry_columns während des Einspielens der Daten automatisch gefüllt, bei mir erledigt das osm2pgsql. Ich weiß aber nicht, wie deine Daten in das System gekommen sind. Evtl. ist da auch was schief gegangen bei den vielen Versuchen ;-)
gis_jam
Offline
#11 2013-07-16 15:41:08
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Re: Zugriff auf PostGIS-DB mittels QGIS
HI !
Ich weiß aber nicht, wie deine Daten in das System gekommen sind. Evtl. ist da auch was schief gegangen bei den vielen Versuchen ;-)
wie gesagt die Daten sind mit osmosis eingelesen worden und ich habe heute morgen die DB osm nochmal gelöscht und neu angefangen.
Alle Schritte und deren Reihenfolge sind in http://wiki.openstreetmap.org/wiki/User … QL-Scripte geschrieben.
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#12 2013-07-16 15:44:09
- gis_jam
- Member
- Registered: 2011-10-14
- Posts: 81
Re: Zugriff auf PostGIS-DB mittels QGIS
Yup, und da weiß ich dann auch nicht mehr weiter. Keine Ahnung, was Osmosis beim Import alles so anstellt. Osmosis-Cracks vor!
Gis_jam
Offline
#13 2013-07-16 15:46:07
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Re: Zugriff auf PostGIS-DB mittels QGIS
Danke trotzdem ...
Habe eben nochmal gegoogled und auf http://wiki.openstreetmap.org/wiki/Osmo … tGIS_Setup unter dem Punkt Check Results eine Auflistung gefunden....
Beim mir ist diese aber längst nicht so groß - kann das ein Hinweis sein und wie behebt man das ?
Gruß Jan :-)
Last edited by Lübeck (2013-07-16 15:52:12)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#14 2013-07-16 15:50:07
- wambacher
- Member
- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: Zugriff auf PostGIS-DB mittels QGIS
http://www.tappenbeck.net/forum/osm/jt_ … 30716b.jpg
Gibt es eine Erklärung dafür...
Schau mal genau hin: bei bbox und linestring von ways steht "prüfe" dran. qgis versucht an die Infos für die beiden Geometrien ranzukommen und hat dabei Probleme. Dauert ewig, da er ALLE Objekte abfragt - und das jedesmal.
Ich habe selbst für mich noch keine vernünftige Lösung gefunden und bin mal gespannt, ob dieser Thread was bringt.
Die Postgis- und erst recht OSM-Unterstützung in QGIS ist nicht so besonders. Es sei denn, es gibt Tricks, die ich noch nicht kenne.
Frag doch mal deinen "Kumpel", dessen spezielle Anwendung ja anscheinend funktioniert.
Gruss
walter
Last edited by wambacher (2013-07-16 16:19:55)
Offline
#15 2013-07-16 15:52:48
- wambacher
- Member
- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: Zugriff auf PostGIS-DB mittels QGIS
hi !
SELECT * FROM geometry_columns
liefert nur 3 Einträge ...
Sieht nicht toll aus - aber wieso?
Ist doch genau richtig. In der OSM-DB gibt es genau 2 Tabellen mit ingesamt 3 GEOMETRIE-Spalten. Stimmt.
Gruss
walter
Offline
#16 2013-07-16 15:56:28
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Re: Zugriff auf PostGIS-DB mittels QGIS
hi !
den habe ich schon angemailt mit der Bitte um Mitlesen - habe gerade woanders noch den Hinweis auf
psql -d test -f /usr/share/postgresql/8.4/contrib/hstore.sql
gefunden. Ist das dasselbe wie
CREATE EXTENSION hstore;
??
Gruß Jan :-)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#17 2013-07-16 16:10:14
- viw
- Member
- Registered: 2010-05-15
- Posts: 2,623
Re: Zugriff auf PostGIS-DB mittels QGIS
Ich hatte euch in dem anderen Thread gewarnt!
Eine solche DB macht später ärger. Ich habe die Datenbank mit osm2pgsql eingelesen und da sind alle Geometrien angelegt. Es gibt eine Tabelle mit Straßen usw. Für den Rest gibt es dann noch eine Kompletttabelle. Leider gibt es für die neuste Version unter Windows kein hstore mehr.
Offline
#18 2013-07-16 16:10:37
- wambacher
- Member
- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: Zugriff auf PostGIS-DB mittels QGIS
ja. ab 9.1 ist hstore installiert und muß nur noch mit "create extension hstore" aktiviert werden. Du hast aber hstore drin und aktiv. schau dir mal die Spalte TAGS an, die ist vom Typ hstore.
Und so eine Query sollte bei dir Ähnliches ausgeben:
planet=# select id, tags from nodes
where tags ? 'amenity'
limit 5;
id | tags
-----------+--------------------------------------------------------------------------------------------
602607298 | "amenity"=>"bicycle_parking"
602607356 | "amenity"=>"parking"
602608197 | "seats"=>"4", "colour"=>"green", "amenity"=>"bench", "backrest"=>"yes", "material"=>"wood"
602608208 | "amenity"=>"parking", "parking"=>"surface"
602608418 | "ele"=>"456.988892", "amenity"=>"bench", "wpt_description"=>"01-JAN-10 12:57:48"
(5 rows)
tag ? 'amenity' bedeutet übrigens: liste alles auf, was ein Tag "amenity" besitzt.
näheres: http://www.postgresql.org/docs/9.2/static/hstore.html
Gruss
walter
Last edited by wambacher (2013-07-16 16:11:31)
Offline
#19 2013-07-16 16:22:37
- wambacher
- Member
- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: Zugriff auf PostGIS-DB mittels QGIS
Leider gibt es für die neuste Version unter Windows kein hstore mehr.
Sicher? Ich sehen in Jans Tabellen hstore-Spalten. Und wenn er gleich mal die Testquery macht, werden wir wohl auch die Tags sehen.
Nachtrag: erst denken, dann schreiben - ich glaube, du redest von hstore beim neuesten osm2pgsql unter windows. Dann sollte alles klar sein.
Sorry
walter
Last edited by wambacher (2013-07-16 16:25:02)
Offline
#20 2013-07-16 16:39:51
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Re: Zugriff auf PostGIS-DB mittels QGIS
Wenn #18 an mich gerichtet war, dann bekomme ich ein vergleichbares Ergebnis!
Gruss Jan
PS: sogar die abgewandelte way Abfrage liefert ein Ergebnis!
Last edited by Lübeck (2013-07-16 16:42:43)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#21 2013-07-16 21:25:25
- wambacher
- Member
- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: Zugriff auf PostGIS-DB mittels QGIS
Wenn #18 an mich gerichtet war, dann bekomme ich ein vergleichbares Ergebnis!
Gruss Jan
PS: sogar die abgewandelte way Abfrage liefert ein Ergebnis!
jo, dann ist damit alles in Butter.
Offline
#22 2013-07-18 21:54:55
- Osmonav
- Member
- Registered: 2013-05-19
- Posts: 33
Re: Zugriff auf PostGIS-DB mittels QGIS
Hi,
also erst mal würde ich mir einen User unter postgresql einrichten. create user jan .... mit entsprechenen Rechten, siehe psql, \h create user. Ständig als posgres arbeiten = Arbeit als Root = Arbeit als Administrator = do not.
osm2postgresql erzeugt, wie mehrfach gesagt/geschrieben, Tabellen und macht schon ein paar Auswertungen, ohne tags zu filtern.
Ansonsten, osmosis direkt, geht auch.
Wenn ich Jans Posting sehe, ist eigentlich bis auf die Flächen (logisch, osmosis) alles da. Es gibt eine Tabelle ways, in der unter linestring (so heißt das Ding in postgis -> manual Postgis pdf -> lesen) die Linien da sind. Jetzt muss man sich Spalten (oder weitere Tabellen) erzeugen, die die Tags in entsprechenden (Text-)Spalten haben, weil qgis mit hstore nichts anfangen kann.
alter table ways add column straße text;
update ways set straße = tags -> 'highway' where tags ? 'highway';
alter table ways add column bach text;
update ways set bach = 'Fluss' where tags @> 'waterway=>river';
etc. - oder anders
Die Doku steht wie gesagt im posgis-Manual. Die Doku für hstore ist im postgresql-Manual ziemlich weit hinten (acroread suchen nach hstore).
Was du noch brauchst, wenn du direkt mit osmosis arbeitest, ist eine Tabelle für die Flächen. Postgis kann geschlossene Flächen selbst erkennen, dafür gibt es eine Funktion (->Manual). Für die Multipolygone (und admin-Grenzen) muss man sich dann selbst erst die zusammengehörigen Linien zusammensetzen (postgis) und dann die Linien gruppieren nach Zusammengehörigkeit. Am besten über ein paar temporäre Tabellen, da kann man die Zwischenergebnisse ganz gut verfolgen. Die Relationen dafür sind unter den tables 'relations' und 'relation_members' abgelegt, die sind praktisch selbsterklärend.
IIRC erzeugt osm2postgresql die Flächen-Tabelle selbst, ich weiß aber nicht mehr, wie vollständig.
Ansonsten erzeugt das Script eine Art Klassenregister. class=highway/railway/waterway etc. Ist ganz nett, stößt aber an Grenzen, beispielsweise bei der Drehbrücke in Lübeck, wenn das Gleis auf der Straße liegt.
Man kann das Script zum Eingewöhnen benutzen, das ist ratsam. Auf Dauer verbraucht es viel Zeit und letztlich schmeißt man doch einen großen Teil der Ergebnisse weg, deshalb ist es ebenso sinnvoll, sich in postgis einzulesen und die Aufstellung der Flächen selbst aufzudröseln. Etwas Erfahrung in posgis und postgresql sollte man dafür aber vorher sammeln.
Gruß, Wolfgang
Offline
#23 2013-07-19 00:23:26
- wambacher
- Member
- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: Zugriff auf PostGIS-DB mittels QGIS
Jetzt muss man sich Spalten (oder weitere Tabellen) erzeugen, die die Tags in entsprechenden (Text-)Spalten haben, weil qgis mit hstore nichts anfangen kann.
Wirklich?
ein Filter wie (tags->'highway'='residential') oder (tags ? 'building') klappt bei mir prima - muttu nur die beiden Klammern drum machen.
Gruss
walter
mag sein, dass du eine veraltete Version von qgis einsetzt . ich fahre 1.9, meine aber, dass es unter 1.8 auch schon geklappt hat.
Last edited by wambacher (2013-07-19 01:00:37)
Offline
#24 2013-07-19 04:53:13
- Lübeck
- Member
- Registered: 2009-02-17
- Posts: 2,874
Re: Zugriff auf PostGIS-DB mittels QGIS
hi !
danke für die Rückmeldungen.
@Wolfgang: wenn ich Dich dann richtig verstehe sind das mit den fehlenden Tabellen auch die Gründe für die Lahmheit von qgis ? Aber so ganz würdest Du mir zu Anfang auch nicht von osm2postgresql abtraten. Dann hatte ich das falsch verstanden.
--- gestrichen anfang ---
Werde dann vielleich nochmal die DB mal mit osm2postgresql probieren und vergleichen.
Ist ja sonst auch schnell wieder erstellt.
--- gestrichen ende ---
Bin schon gespannt - das letzte Posting war es wohl nicht !
Gruß Jan :-)
PS: habe dann mal
SELECT * FROM nodes limit 10;
abgesetzt - da ist aber die Spalte hstore leer im Gegensatz zur Abfrage
SELECT * FROM ways limit 10;
Ist das richtig ?
Kann ich mir irgendwie nicht vorstellen!
Last edited by Lübeck (2013-07-19 13:31:01)
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#25 2013-07-23 19:45:41
- brogo
- Member
- From: 54,11 +-1°
- Registered: 2009-06-02
- Posts: 553
Re: Zugriff auf PostGIS-DB mittels QGIS
Wenn ich Jans Posting sehe, ist eigentlich bis auf die Flächen (logisch, osmosis) alles da. Es gibt eine Tabelle ways, in der unter linestring (so heißt das Ding in postgis -> manual Postgis pdf -> lesen) die Linien da sind.
Gibt es irgendwo eine Doku speziell für OSM (also nicht das Postgis-Handuch (englisch)), wie man nun aus den Linien (linestrings) am einfachsten Polygone und Multipolygone bastelt? Die Postgis-Funktionen sind ja doch sehr umfangreich.
Christian
Offline