多边形不正确的问题 - Postgis查询不起作用

时间:2014-07-23 11:30:13

标签: gis postgis

嗯,我有2个表,一个表示多边形,第二个表。我想知道两件事,第一件是第一张表的多边形区域,第二件是2个几何图形的交叉区域: 1)第一个表的多边形区域 2)位于多边形内部的点周围150米半径缓冲区的并集区域。

我做了查询,但出了点问题,因为如果我设置WHERE子句只选择第一个表中的一个多边形,那么一切正常,但是如果我想要所有的数据多边形,然后我得到错误:“执行交集时出错:TopologyException:输入geom 0无效:自相交点或附近点12.20304662098798 46.117661703823636 at 12.20304662098798 46.117661703823636”

第一个有效的查询是:

SELECT residenziali.code,
       ST_Area(residenziali.the_geom::geography, true) as area_zona, 
       ST_Area(ST_Intersection(residenziali.the_geom, 
               (ST_Union(ST_Buffer(fermate.the_geom::geography, 150)::geometry)))::geography,true) as intersect 
 FROM residenziali 
 JOIN fermate ON st_contains(residenziali.the_geom , fermate.the_geom) 
WHERE residenziali.id = '969' 
GROUP BY residenziali.code,residenziali.the_geom

当我删除WHERE子句时,它不再起作用,错误是什么?

两个表的几何列都是“the_geom”,第一个表是“residenziali”,第二个表是“fermate”,两者都使用WGS84。感谢!!!

0 个答案:

没有答案