Podczas importowania danych pliku kształtu do PostGIS nie wybrałem właściwej projekcji.
Jak mogę teraz zmienić SRID danych bez przekształcania współrzędnych?
Podczas importowania danych pliku kształtu do PostGIS nie wybrałem właściwej projekcji.
Jak mogę teraz zmienić SRID danych bez przekształcania współrzędnych?
Odpowiedzi:
Istnieje funkcja jednej linii, która robi to za Ciebie. Wystarczy użyć następującego zapytania SQL:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
Ale jeśli jesteś podobny do mnie, zainteresują Cię miniaturowe kroki na niskim poziomie. Logicznie rzecz biorąc, powyższa funkcja jest równoważna z następującym czteroetapowym procesem:
W tabeli geometry_columns zaktualizuj identyfikator SRID do wymaganej wartości.
Upuść ograniczenie na tabelę, używając następującej instrukcji SQL
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
Zaktualizuj SRID'd geometrii, używając następującej instrukcji SQL
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
Dodaj ograniczenie z powrotem, używając następującej instrukcji SQL
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
W PostGIS 2.x kolumny geometryczne zwykle używają typmods jak geometry(Point, 1234)
. W tym celu możesz użyć ALTER TABLE, aby bezpośrednio zmodyfikować typ kolumny geometrii w jednym kroku.
Na przykład, aby ustawić SRID się geom
w mytable
WGS84, użyj ST_SetSRID :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
Pamiętaj, że spowoduje to jedynie zmianę SRID, ale nie przekształci danych współrzędnych.
UpdateGeometrySRID
nie są obsługiwane.