首页 / 浏览问题 / 组件GIS / 问题详情
Geometry之间最短距离
12EXP 2022年10月08日
使用产品:iobjects .net 10i 操作系统:win11 x64

需要获取两个GeoRegion之间的最短距离的连线,有什么对应的方法吗?

Geometrist类的Distance方法可以求出两个多边形的最短距离,以最短距离生成两个多边形的缓冲区,分别与原多边形交点的连线并不理想。

2 个回答

你好,比较精准的方法的话,建议实现路线是

1.将GeoRegion进行类型转换,转为闭合的GeoLine线对象

2.将GeoLine线对象,使用插值或者光滑方法增加节点数量

3.将GeoLine线对象中的节点,转换为GeoPoint对象,存放在记录集中

4.使用ProximityAnalyst.ComputeMinDistance进行最近距离分析,得到最近距离点対进行连线

具体实现上其中一些步骤是可以根据您自身项目考虑去调整的,以上只是建议一个思路。

比如34步,可以将两个GeoLine线对象都转为节点记录集,最近距离计算后直接得到最近的两个点,

亦或是只有一个GeoLine转换为节点记录集,使用一个线对象和一个节点记录集求最近距离,得到距离线对象最近的一个节点,然后使用该节点求该点到线对象。

具体不同的调整在性能、精准性、业务逻辑上都是有差异的,需要您自行考量实现业务。

希望可以帮助到您。
于丁
1
10,538EXP 2022年10月08日

您好,Geometrist.Distance这个方法得到的是两个面边界的最小距离。

如果您是想要求边距的最小距离,您可以参考以下回答:http://ask.supermap.com/1401

希望能帮助到您!

2,548EXP 2022年10月08日
...