这是先前问题的后续内容。您将看到我是PostGIS的新用户。
我查看了数据中拓扑的有效性,并在Landcover(多边形)数据集中发现了约1700个拓扑问题。这些都是“ Ring Self_intersection”。
使用Paul Ramsay在此演示文稿中的一些有用信息(第20页),我试图相应地缓冲数据:
UPDATE schema.data SET the_geom = buffer(the_geom,0.0)在哪里有效(the_geom)= false和isvalid(buffer(the_geom,0.0))= true;
但是我得到了回应:
注意:在或接近点的环形自相交(已编辑)错误:关系“ sgm_buffer”的新行违反了检查约束“ enforce_geotype_the_geom”
**********错误**********
错误:关系“ sgm_buffer”的新行违反了检查约束“ enforce_geotype_the_geom”的SQL状态:23514
我也尝试过:
更新csgn.sgm_buffer SET the_geom = buffer(the_geom,0.0)
并获得:
错误:关系“ sgm_buffer”的新行违反了检查约束“ enforce_geotype_the_geom”
**********错误**********
错误:关系“ sgm_buffer”的新行违反了检查约束“ enforce_geotype_the_geom”的SQL状态:23514
那么,我是否认为该缓冲技术无法解决我的问题?还是我做错了什么?
拉姆齐先生随后在同一文档中继续提出了另一种处理“ 8位数字”多边形的技术。我不完全理解如何用代码完整地写出来(或者它在做什么以及是否对我有帮助):
选择ST_BuildArea(ST_Union('LINESTRING EMPTY',ST_ExteriorRing('POLYGON((...))'
所以....有人可以帮忙吗?由于时间紧迫,PostGIS技能有限,这真是一场噩梦。
ST_Multi()
强制所有多边形均为MULTIPOLYGON
s(这是一个假设)