SuperMap iObject入门开发系列之六管线区域查询

本文是一位好友“托马斯”授权给我来发表的,介绍都是他的研究成果,在此,非常感谢。

管线区域查询功能针对单一管线图层进行区域多边形框选查询,然后将查询结果输出为列表,并添加定位和闪烁功能,效果如下图所示:

具体功能实现思路:

  • 首先要让客户设置一个多边形框选区域,操作上是单击左键选点后移动鼠标,继续单击左键画多边形区域,最后单击右键结束,在代码里,我采用了iObject的面积量算接口进行框选区域的获取,用起来比较方便,首先要将SceneControl.Action设置为Action3D.MeasureArea,然后在SceneControl.Tracking事件,即三维场景跟踪图层鼠标交互绘制几何对象结束时触发事件中获取到绘制结束的三维面对象GeoRegion3D。

核心代码如下

  • 获取到GeoRegion3D后,我这里做了一个转换,转为二维面对象,方便后面的相交计算,并生成二维面数据集。

核心代码如下

  • 最后将上面获取到的二维面数据集,即用户框选的这个区域,和所选的管线图层对应的二维数据集进行相交(SpatialQueryMode.Intersect)的空间查询,就是查询在这个框选范围内的管线。因为这里的空间查询仅支持二维数据集,所以之前才要将框选区域转为二维面数据集。最后获得结果记录集Recordset,填充到DataGridView,并设置好定位和高亮显示,这些上一篇已经讲解过了。

核心代码如下:

好友“托马斯”技术交流QQ:519926200

作者: GIS之家

GIS之家微信号:gishome;GIS之家拥有自己的GIS开发团队,均是高校GIS研究生,具备丰富的webgis开发项目工作经验,专注以及热爱研究webgis技术的团队

发表评论

电子邮件地址不会被公开。 必填项已用*标注