Создание триггера с оверлейной операцией PostGIS

Задача - при добавлении точечного объекта в одной таблице определить, в пределах какого полигонального объекта другой таблицы точка находится.

-- DROP FUNCTION public.process_realty_add();

CREATE OR REPLACE FUNCTION public.process_realty_add()
  RETURNS trigger AS
$BODY$
BEGIN
raise notice 'point trigger starts now: %', now();

SELECT gis_county.county, gis_county.state 
INTO NEW.t_county, NEW.t_state
FROM gis_county
WHERE ST_Intersects(NEW.geom, gis_county.geom);

raise notice 'point trigger ends now: %', now();
RETURN NEW;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

Триггер:

-- DROP TRIGGER realty_add ON public.gis_realty;

CREATE TRIGGER realty_add
  AFTER INSERT OR UPDATE
  ON public.gis_realty
  FOR EACH ROW
  EXECUTE PROCEDURE public.process_realty_add();

Комментарии

Популярные сообщения из этого блога

Перемещаемые подписи в QGIS

Настройка сети в VirtualBox

Как делать XML в кадастровую палату (росреестр)