При импорте данных моего шейп-файла в PostGIS я не выбрал правильную проекцию.
Как мне теперь изменить SRID данных, не трансформируя Координаты?
При импорте данных моего шейп-файла в PostGIS я не выбрал правильную проекцию.
Как мне теперь изменить SRID данных, не трансформируя Координаты?
Ответы:
Есть функция с одной строкой, которая делает это для вас. Просто используйте следующий запрос SQL:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
Но, если вы похожи на меня, вас заинтересуют миниатюрные ступени низкого уровня. Логически говоря, вышеуказанная функция эквивалентна следующему четырехэтапному процессу:
В таблице geometry_columns обновите SRID до требуемого значения.
Удалите ограничение на таблицу, используя следующую инструкцию SQL
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
Обновите SRID для геометрии, используя следующую инструкцию SQL
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
Добавьте обратно ограничение, используя следующую инструкцию SQL
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
В PostGIS 2.x геометрические столбцы обычно используют typemods, например geometry(Point, 1234). Для этого вы можете использовать ALTER TABLE для непосредственного изменения типа столбца геометрии за один шаг.
Например, чтобы установить SRID geomв mytableWGS84, используйте ST_SetSRID :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
Обратите внимание, что это только изменит SRID, но не преобразует данные координат.
UpdateGeometrySRIDне поддерживаются.