Beim Importieren meiner Shapefile-Daten in PostGIS habe ich nicht die richtige Projektion ausgewählt.
Wie ändere ich jetzt die SRID der Daten, ohne die Koordinaten zu transformieren?
quelle
Beim Importieren meiner Shapefile-Daten in PostGIS habe ich nicht die richtige Projektion ausgewählt.
Wie ändere ich jetzt die SRID der Daten, ohne die Koordinaten zu transformieren?
Es gibt eine Einzeilenfunktion, die dies für Sie erledigt. Verwenden Sie einfach die folgende SQL-Abfrage:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
Aber wenn Sie so sind wie ich, würden Sie sich für die kleinen Schritte interessieren. Logischerweise entspricht die obige Funktion dem folgenden vierstufigen Prozess:
Aktualisieren Sie in der Tabelle geometry_columns die SRID auf den erforderlichen Wert.
Legen Sie das Contraint mithilfe der folgenden SQL-Anweisung auf dem Tisch ab
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
Aktualisieren Sie die SRID der Geometrie mithilfe der folgenden SQL-Anweisung
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
Fügen Sie das Contraint mithilfe der folgenden SQL-Anweisung zurück
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
In PostGIS 2.x verwenden Geometriespalten normalerweise typmods wie
geometry(Point, 1234)
. Für diese können Sie ALTER TABLE verwenden , um den Geometriesäulentyp in einem Schritt direkt zu ändern.Verwenden Sie beispielsweise ST_SetSRID , um die SRID von
geom
inmytable
auf WGS84 festzulegen :Beachten Sie, dass hierdurch nur die SRID geändert wird, nicht jedoch die Koordinatendaten.
quelle
UpdateGeometrySRID
nicht unterstützt werden.