我在处理澳大利亚人口普查数据集provided in MapInfo format by the Australian Bureau of Statistics时遇到问题.我正在使用ogr2ogr tool将这些数据加载到PostGIS数据库中,该数据库适用于大多数形状,但不是全部.
我面临的问题的一个简单示例是这样的查询(需要加载NSW数据集):
SELECT st_union(wkb_geometry) FROM cd06answ WHERE cd_code_2006 LIKE '1291%'
该查询的结果不是预期的形状,而是NULL.
该表中没有空值,但是存在无效的几何.例如
SELECT cd_code_2006 FROM cd06answ
WHERE cd_code_2006 LIKE '1291%' AND NOT st_isvalid(wkb_geometry)
检索值“ 1291301”和“ 1291321”.如果排除无效的几何体,则st_union成功.
将Quantum GIS连接到数据库允许渲染两个有问题的形状.它们应该是几何并集的一部分,因此我需要以某种方式解决该问题.
是否有更好的方法将MapInfo数据加载到PostGIS中?还是一些在PostGIS内部修复数据的方法?由于数据库数据呈现正常,应该可以保存它,不是吗?
编辑:基于克里斯托夫的反馈,我对st_buffer和st_snaptogrid进行了更多实验.该查询的结果:
SELECT
cd_code_2006,
st_isvalid(st_buffer(wkb_geometry,0)),
st_isvalid(st_snaptogrid(wkb_geometry, 0.00000001)),
st_isvalid(st_snaptogr