Під час імпорту моїх даних з формату до 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не підтримує.