Преобразование из трехмерной геометрии в двухмерную

12

У меня есть таблица точек, в которой столбец геометрии содержит 3 измерения и 2 значения измерения. Я хочу преобразовать эту 3-мерную геометрию в 2 измерения. Есть ли какая-либо функция в PostGIS? Пожалуйста, помогите мне решить эту проблему.

С уважением Sreesha.TA

Sreesha
источник
Я хотел бы использовать ST_Force2D, но там написано: функция st_force2d (геометрия) не существует. Есть идеи? Спасибо, Ласло
Ласло

Ответы:

15

http://postgis.net/docs/manual-2.0/ST_Force_2D.html

ВЫБЕРИТЕ ST_Force_2D (the_geom) ОТ ...

Обновите существующую таблицу

 
ALTER TABLE your_geo_table ADD geom2d geometry;
UPDATE your_geo_table SET geom2d = ST_Force_2D(the_geom);

Смотрите также http://postgis.net/docs/

simplexio
источник
1
Используйте ST_Force2Dвместо ST_Force_2d. ST_Force_2dподпись устарела в 2.1.0.
Jgrocha
9

Если вы не хотите добавлять новый столбец, вы также можете сделать следующее:

ALTER TABLE your_geo_table  
  ALTER COLUMN geom TYPE geometry(YOUR_GEOM_TYPE, YOUR_EPSG) 
    USING ST_Force_2D(geom);

Например:

ALTER TABLE your_geo_table  
  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) 
    USING ST_Force_2D(geom);
Томас Б
источник
Я попробовал это предложение в базе данных, которая у меня есть (в моем случае у меня была похожая проблема, но я хотел, чтобы точки были трехмерными), но я получаю эту ошибку: ОШИБКА: функция st_force_3d (география) не существует LINE 3 : ИСПОЛЬЗОВАНИЕ ST_Force_3D (geom); ^ СОВЕТ: ни одна функция не соответствует заданному имени и типу аргумента. Возможно, вам придется добавить явные приведения типов. ********** Ошибка ********** ОШИБКА: функция st_force_3d (география) не существует Состояние SQL: 42883 Подсказка: ни одна функция не соответствует заданному имени и типу аргумента. Возможно, вам придется добавить явные приведения типов. Характер: 89
Андреа Гранди
Я думаю, это потому, что ST_Force3D работает с типом геометрии, а не с типом географии.
Томас Б.