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?
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?
Antworten:
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
in mytable
auf WGS84 festzulegen :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
Beachten Sie, dass hierdurch nur die SRID geändert wird, nicht jedoch die Koordinatendaten.
UpdateGeometrySRID
nicht unterstützt werden.