как перенести геометрию из одного столбца в пустой столбец на postgre sql - PullRequest
2 голосов
/ 10 марта 2020

я использовал alter table для создания нового столбца (с именем geom, 2157), но перенос геоинформации из столбца geom 4386 в новый geom, столбец 2157 является проблемой

ALTER TABLE major ADD COLUMN gem geometry(POINT, 2157);
UPDATE major SET geom = ST_SetSRID(ST_MakePoint, 2157);

1 Ответ

1 голос
/ 10 марта 2020

ST_Transform - это то, что вы ищете:

Пример данных

CREATE TABLE t (geom GEOMETRY(POINT,4326));
INSERT INTO t VALUES ('SRID=4326;POINT(-4.43 54.32)'::GEOMETRY);
ALTER TABLE t ADD COLUMN geom2 geometry(POINT,2157);

Для обновления нового столбца геометрии с геометрией, преобразованной в SRS 2157 просто используйте ST_Transform следующим образом:

UPDATE t SET geom2 = ST_Transform(geom,2157);

А вот ваша преобразованная геометрия:

 SELECT ST_AsText(geom), ST_AsText(geom2) FROM t;
     st_astext      |                st_astext                 
--------------------+------------------------------------------
 POINT(-4.43 54.32) | POINT(832216.581140537 847131.995720883)
(1 Zeile)
...