Під час імпорту моїх даних з формату до PostGIS я не вибрав належну проекцію.
Як зараз змінити SRID даних, не перетворюючи координати?
Під час імпорту моїх даних з формату до PostGIS я не вибрав належну проекцію.
Як зараз змінити SRID даних, не перетворюючи координати?
Відповіді:
Існує функція єдиного рядка, яка робить це для вас. Просто використовуйте наступний запит SQL:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
Але, якщо ти такий, як я, тебе зацікавили б мініатюрні кроки низького рівня. Логічно кажучи, зазначена вище функція еквівалентна наступним чотирьохшаговим процесам:
У таблиці geometry_column оновіть SRID до необхідного значення.
Опустіть контрагент на стіл, скориставшись наступним оператором SQL
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
Оновіть SRID'd геометрії за допомогою наступного оператора 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 стовпці геометрії зазвичай використовують типові типи geometry(Point, 1234)
. Для цього ви можете використовувати ALTER TABLE, щоб безпосередньо змінити тип стовпця геометрії за один крок.
Наприклад, для встановлення SRID geom
у mytable
в WGS84, використовуйте ST_SetSRID :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
Зауважте, що це лише змінить SRID, але не перетворить дані координат.
UpdateGeometrySRID
не підтримує.