与PostgreSQL和PostGIS的工作,我有2个OpenStreetMap的表格,包含:
- 点:与单个位置的坐标
- 多边形:区域与坐标集
现在,我通过点表试图环和每个记录,我试图做一些计算与PostGIS的功能,如ST_Intersects()
然后尝试将结果插入到另一个表。
到目前为止,我只是做了简单的SELECT
查询与PostGIS的功能,他们基本的工作是这样的:
SELECT a.name, b.name
FROM table_point AS a, table_polygon AS b
WHERE a.name = 'Berlin' AND ST_Intersects(a.way, b.way);
注: way
是包含几何数据两个表中的列。
说回圈我要工作,我发现我自己缺乏基本PLPGSQL。 我创建了下面的循环结构,但不知道如何选择第二组的记录( table_point AS a, table_polygon AS b
的PostGIS的功能)。 短:如何选择记录table_polygon
与for循环相处? 或者,有没有更好的办法来解决这个问题?
DO
$do$
DECLARE
r RECORD;
BEGIN
FOR r IN SELECT * FROM table_point
LOOP
RAISE NOTICE '%', r;
...
END LOOP;
END;
$do$ LANGUAGE plpgsql
在Ubuntu 14.04 64位使用PGSQL 9.3.5。