X/Y Domain导致ITopologicalOperator::Intersect出错(二)

      睡了一觉起来,继续思考这个问题。记得曾经用IFeatureCursorBuffer接口的时候,说一定要用IFeatureCursorBuffer2,会不会这里也要用ITopologicalOperator2呢?但是这次没有这么幸运,依旧是失败,不过也很正常,因为符合通常的逻辑,新的接口只是对老接口的扩展。
        看来是没折了,我突然在ArcCatalog的帮助中看到这样一句话:

Calculate precision

First you must calculate an appropriate precision by choosing your storage units and calculating your precision accordingly. Set your storage units to be 10 times smaller than the best precision of your data collection. This will ensure that the precision of your data collection is maintained in the geodatabase regardless of how you manipulate the data with ArcGIS (geoprocessing, topology cluster tolerance, geometry operations, and so on).
(//Building a geodatabase/Setting an appropriate geodatabase spatial domain中有一段Calculate precision)
但是根据这个原则来看的话,我的设置没有问题,storage units=9.31E-5,而数据精度也就1E-3,十倍可以保证。但是出问题的地方,最小距离为2E-5,而且是不同的FeatureClass之间,难啊!
        突然我想到了Topology平面拓扑,通过建拓扑也许可以解决这个问题。果然在Wizard中看到
Enter a cluster: 0.0001919
The cluster tolerance is a distance range in which all vertices and boundaries are considered as identical, or coincident. Vertices and endpoints falling within the cluster tolerance are snapped together.
同时设置图斑的rank比村界线高,这样村界线往图斑靠。创建Topology后,然后Validate。
        再次运行程序进行图斑分割,跑了1hr14min终于跑完,结果完全正确!但是这样也比较麻烦,创建Topology速度很慢,而且必须要有ArcEditor的License才行。
        此外为什么会出现这样的问题,多了一个(0,0)?
        有没有什么办法检测结果是否出错?
        有没有办法检测数据集是否存在这样的问题,不通过建拓扑有没有办法修复呢?

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值