首页 / 浏览问题 / 组件GIS / 问题详情
组件GIS:叠加分析线面求交结果错误
14EXP 2021年03月08日

使用产品:iObjects.Net 9D 操作系统:win10 x64

数据类型:文件型

问题描述:

(1)源数据:线数据,叠加数据:面数据,坐标系相同

(2)单个面对象与线数据求交:一次读取叠加数据中的一个面对象Recordset.getGeometry(),临时存储到一个Geometry[]中,然后使用OverlayAnalyst.Intersect  (DatasetVector, Geometry[], DatasetVector, OverlayAnalystParameter)方法,分别与线数据进行求交。

问题:(1)部分求交结果是错误的,即某个面对象A和线数据的求交结果完全不正确,但在桌面端使用同样的单个面对象A,求交结果准确,未修改容限默认值。

(2)在代码中修改OverlayAnalystParameter.Tolerance为0.0000001或某个接近0的值后,面对象A的求交结果会得到改正,但某个面对象C又会出现错误的结果。

请问:出现以上问题可能的原因?OverlayAnalystIntersect中将参数设为数据集与面对象组的方法是否有应当注意的问题?

1个回答

容限是一个距离值,在这个值的范围内,所有的节点或(和)线被认为是重合的、同一的。在处理矢量数据集、动态分段、空间分析等操作时,常常需设置容限值。

不同坐标系的容限默认值不同,若源数据集为投影坐标系,则容限默认值为 1m;若源数据集为地理坐标系,则容限默认值为0.00001°;若源数据集坐标为平面坐标系,则容限默认值为数据集较长边的百万分之一,单位与坐标系单位一致。

默认容限值以1米为基准,当数据集为地理坐标时,单位为度,米和度之间的换算可通过地球周长进行换算:地球赤道周长为 40075.7km,用 360°除以 40075.7km等于 0.0000898°/m,而纬度越高,同纬度上饶地球的一圈长度就越小,实际距离为 1m 对应的经纬度数值越大。因此取其近似值 0.00001°表示距离约为 1m。

所以对于同一个操作,不同的容限值会有不同的结果,对于数据集来说,如果源矢量数据集有节点容限,则默认的容限值与节点容限一致。如果需要最后的结果尽量减少差异,就将容限值尽量设置小一些
4,620EXP 2021年03月09日
...