Добрый день!
Подскажите запрос postgresql+postgis.
Есть два слоя - точки и линии.
Некоторые узлы линий соприкасаются с точками слоя точек.
Необходимо при изменении положения точки (на слое точек) изменить координаты только того узла линии который с ней соприкасался, чтобы они снова совпадали, причем с точкой могут соприкасаться несколько линий, причем, как своим началом, концом, и промежуточной точкой.
Как понимаю нужен триггер и соответствующий запрос.
Подскажите запрос точка/линия
-
- Активный участник
- Сообщения: 115
- Зарегистрирован: 18 ноя 2009, 11:31
- Репутация: 0
-
- Участник
- Сообщения: 54
- Зарегистрирован: 15 янв 2011, 23:03
- Репутация: 1
- Откуда: Ukraine
Re: Подскажите запрос точка/линия
Код: Выделить всё
UPDATE table_line
SET line_geom=ST_SetPoint(line_geom, g.point_num, NEW.point_geom)
FROM
(SELECT
t.id, (ST_DumpPoints(t.line_geom)).path[1]-1 as point_num,
ST_Distance(OLD.point_geom, (ST_DumpPoints(t.line_geom)).geom) as d
FROM table_line t
) AS g
WHERE table_line.id = g.id and g.d < 0.01;
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость