首页 / 浏览问题 / 组件GIS / 问题详情
能否使用iObjects.Net的GeoRegion去判断一个点是否在范围内
242EXP 2022年08月17日
如题,请问能否通过iObjects.Net中Geometry类里的方法,判断一个点是否被包含在一个多边形GeoRegion中

我看帮助文档里有一个比较接近我想要的效果的方法,是HitTest,输入一个点坐标和半径画一个圆判断是否和GeoRegion相交

请问有没有方法可以直接判断点是否在GeoRegion中,如果没有的话,是否可以使用HitTest来代替,如果要用它来代替的话,半径最小可以取到多少?

1个回答

您好,就是相当于您想做判断点对象和面对象的空间拓扑关系,如果是的话,不用这么复杂的绕向方法的,

使用拓扑检查即可,TopologyValidator。

拓扑检查了解可以参考iDesktop的文档:

https://help.supermap.com/iDesktop/zh/tutorial/DataProcessing/Topology/TopoCheck

https://help.supermap.com/iDesktop/zh/tutorial/DataProcessing/Topology/TopoRule

希望可以帮助到您。

于丁
1
9,138EXP 2022年08月17日
您好,主要是在想上一个问题应该如何解决。

拓扑逻辑这边我看了一下iObjects.Net里,要用到DatasetVector,这里就会涉及到上一个问题里iObjects无法通过sql把记录了十几万点ID的sql语句全部运行。

可能还是得用绕向的方法才能解决我现在遇到的问题···

从你上一个问题来说的描述来说,我可能建议你在这个点数据集的属性表里存个shared字段surprise

客户那边想用我们的产品但又不想让我们往他们原本的数据库里加字段,也不希望我们复制一个一模一样的表,然后往复制的表里操作,然后数据结构是客户那边的结构···
几何运算类Geometrist里到时有一些单几何对象之间空间关系判定的方法,但是你描述的情况我不太建议。

按你现在数据结构,这样绕那就是一个个对象查出来,挨个变量去判定,走这个路线性能上可能需要斟酌。
重要业务字段存在数据源外的话,相关的业务能力制约,建议客户从组件能力外优化设计逻辑比较现实,

组件这边要用的方便快捷,性能好,还是得我们产品的数据逻辑对接的上。
嗯,多谢解答,我之后去跟顾客协商一下这方面
...