QGIS Es gibt keinen Eintrag in geometr_columns!

8

In PostgreSQL v9.3 mit PostGIS v2.1-Erweiterungen habe ich eine Ansicht aus zwei Tabellen (Sites & Visits) erstellt. Die Site-Tabelle enthielt eine Punktgeometriespalte (the_geom), die in der erstellten Ansicht enthalten war. Wenn Sie die Tabellenansicht überprüfen, enthält sie die erwarteten Informationen.

In QGIS v2.4 unter Windows 8.1 kann die Site-Tabelle mit der Geometriespalte als Layer hinzugefügt werden. Wenn Sie sich jedoch die erstellte Ansichtstabelle im DB Manager ansehen, heißt es:

PostGIS

Spalte: the_geom Geometrie: GEOMETRIE Dimension: 2 Umfang: 482350.00000, 132750.00000 - 538750.00000, 177150.00000

 Es gibt keinen Eintrag in geometr_columns!

Auf der Registerkarte "Tabelle" wird der Tabelleninhalt wie erwartet angezeigt, und in der Vorschau werden die Punkte angezeigt, die angemessen erscheinen. Das Symbol für die Ansichtstabelle wird als Fragezeichen angezeigt.

Als die Ansicht zum ersten Mal erstellt wurde, konnte sie der Karte nicht als Ebene hinzugefügt werden. Durch einen Neustart meines Computers konnte die Ansicht jedoch als Ebene zur Karte hinzugefügt werden.

Zwei Fragen:

  1. Was bedeutet die Fehlermeldung und wie werde ich sie los?
  2. Warum musste ich meinen Computer neu starten, um die Ansichtstabelle zur Karte hinzuzufügen?
Harry
quelle

Antworten:

10

Also bin ich genau auf dieses Problem gestoßen - und habe die gleichen Fragen gestellt. Ich bin mir bei Frage Nummer 2 nicht sicher, abgesehen von der Vermutung, dass der Server neu gestartet werden musste, um die Datentypen ohne die angewendeten PostGIS-Einschränkungen zu registrieren (die Geometrie-Spalte fehlt und alle).

Ich habe diesen Beitrag gefunden, der auf meinen Tabellen funktioniert hat und genau die gleichen Fragezeichen und Fehler aufweist wie Ihre. Ich habe das erfolgreich ausgeführt:

WITH
t AS (SELECT table_schema, table_name
                FROM information_schema.tables
                WHERE table_schema = 'public' AND table_type = 'BASE TABLE')
SELECT Populate_Geometry_Columns((table_schema::text || '.' || table_name::text)::regclass) FROM t;

Die Tabellen sind mit ihren räumlichen Einschränkungen entsprechend registriert, so dass alles schön und sauber ist!

Sam
quelle