Problem beim Konvertieren von DXF nach SHP und anschließender Koordinatentransf.

Hallo an Alle!

Erst einmal ein Lob an das informative Forum. Es hat mir schon bei vielen kleineren und größeren Problemen gut geholfen. Allerdings habe ich zu meinem jetztigen Problem keine Lösung gefunden und komme auch selber nicht drauf.

Ich habe eine DXF-Datei mit Hilfe des dxf2shp Plugins aus QuantumGIS in ein Shapefile konvertiert. Diese habe ich dann entsprechend in eine *.sql-Datei konvertiert und in Postgres eingeladen. Hat alles super funktioniert, also ich konnte mir die erzeugte Relation in QGIS anzeigen lassen. Da diese allerdings nicht in der Projektion war die ich benötige, wollte ich diese Transformieren mit der Updatefunktion:

UPDATE kveleitung
SET the_geom = transform(the_geom,325833);

Nur hier gab es anschließend ein Problem. Beim erneuten einladen in QGIS und beim Zoomen auf die Layerausdehnung sprang er zwar an die richtige Stelle in der Karte allerdings wird nichts dargestellt. Die Tabelle ist außer der “the_geom”-Spalte unverändert.

Ich hoffe ich konnte mein Problem halbwegs darstellen und jemand hat entweder ein ähnliches Problem, oder kennt eine Lösung dafür.

Danke schon mal im Voraus.

Gruß
stephan_82

Morgen nochmal.

Mir ist gerade aufgefallen dass ich noch eine Kleinigkeit vergessen habe zu erwähnen. Bevor ich das Update der “the_geo,” Spalte durchführen konnte, musste ich die CONSTRAINTs entfernen und habe sie danach wieder hinzugefügt. Könnte vielleicht dort mein Denkfehler liegen?

Hier nochmal der SQL-Code:

 ALTER TABLE kveleitung DROP CONSTRAINT enforce_dims_the_geom;
ALTER TABLE kveleitung DROP CONSTRAINT enforce_geotype_the_geom;
ALTER TABLE kveleitung DROP CONSTRAINT enforce_srid_the_geom;

UPDATE kveleitung
SET the_geom = transform(the_geom,325833);

ALTER TABLE kveleitung ADD CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2);
ALTER TABLE kveleitung ADD CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTILINESTRING'::text OR the_geom IS NULL);
ALTER TABLE kveleitung ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 325833);

Hallo!

Hast du die srid auch in der Tabelle geometry_columns geändert? Das Constraint soll eigentlich verhindern, das man wild SRIDs in seinen Geometrien verteilt :wink:
Du könntest die Daten auch mit Hilfe eines Views umprojiziert bereitstellen und QGis beherrscht im übrigen auch die On-the-fly-Projektion bei der Darstellung. Zumindest manchmal :wink:

Grüssle Uwe

Supi, danke für den Hinweis mit den srid. Das ist der kleine Kniff gewesen der bei mir gefehlt hat. Nun hat sich allerdings ein neues Problem aufgetan. Das passt aber nicht zu diesem Topic, deshalb werde ich ein neues erstellen.

Danke nochmal für den guten Hinweis.

Gruß Stephan