SuperMap iobjects .Net 二次开发系列---测量功能的实现

测量功能在官方给的例子里面是有参考示例的,在iobject\SampleCode\Mapping\MeasureMap中,效果如下:

 but,我们工作中通常想要的效果可能、应该、或许、但是 是下面这样的:

中间结果可以在过程中显示在地图上,而且官方示例在测量结束(鼠标右键)时,图上的图形也会跟着消失,通常的使用场景我们仍然是希望结果能暂时保留在地图上,除了人为释放,那么该如何去实现这个效果呢。 

在API中有一个TrackingLayer类,在执行SuperMap.UI.Action.CreatePolyline等绘制操作中,都是默认在该图层上进行操作,其结果并不直接记录于数据源上,同时,在该类下还有这add、remove等功能可供添加几何:

MapControl.Map.TrackingLayer.Add

MapControl.Map.TrackingLayer.Remove

那么有了这么一个类在看下对应的事件,是否能满足我们的需求。

以下是在示例(iobject\SampleCode\Mapping\ManualEdit)中找到的相关事件:

mapControl.Tracked //对应跟踪结束事件

mapControl.PointInputed //对应跟踪过程中鼠标左键点击事件

mapControl.Tracking //对应绘制过程中不断创建Geometry的事件;

在这个对应的事件中,可以获取到动态的几何长度、面积等信息。

那么有了这几个事件就可以完成我们的功能,思路如下:

按照这个想法,最终我们就可以仿造实现相应的测量效果了:

 打完收工。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值