《跟踪层的应用精选文档.ppt》由会员分享,可在线阅读,更多相关《跟踪层的应用精选文档.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、跟踪层的应用本讲稿第一页,共三十页本 章 目 标 通过本章,能够使用 SuperMap Objects开发实现以下功能:1、添加几何对象到跟踪层,并高亮显示 2、移动跟踪层上的几何对象 3、掌握对象soTrackingLayer与Tracked事件的使用4、删除跟踪层几何对象5、动态跟踪本讲稿第二页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 本讲稿第三页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 知识准备知识准备 跟踪层(TrackingLayer)是临时存储几何对象的场所,适用于几何对象变化频繁,需要经常动态刷新的各种应用,如导航图中的视野范围框随大地图窗口视野范围的变化而不
2、断变化,量算距离和面积时量算位置的变化,GPS 接收机接收数据的实时变化。跟踪图层是一种特殊的图层,它位于所有图层(soLayer)的最上面,这个图层上绘制的空间对象不保存到数据源文件中。跟踪层上的数据没有属性数据。跟踪层中的所有对象都存储在内存中,刷新速度快,但在使用时,应避免将所有临时对象都放在跟踪层中,使跟踪层变成一个临时存储空间,这样会降低效率。本讲稿第四页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 预期效果预期效果本讲稿第五页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 7.1 添加几何对象到跟踪层添加几何对象到跟踪层控件、控件、对对象象属性、方法与事件属性、方法与事件
3、 描描 述述 soTrackingLayerAddEvent用于按照指定风格添加几何对象到跟踪图层上,成功则返回跟踪图层中几何事件对象的总数目ClearEvents用于清除跟踪图层上的所有几何事件对象SuperMap1Tracked当在 Track 相关操作结束绘制操作并且产生 TrackedGeometry 对象时触发该事件soStyleSymbolRotation返回/设置符号的旋转角度,旋转的方向为逆时针方向,单位为度SymbolSize返回/设置符号的大小,单位为0.1毫米SymbolStyle返回/设置点对象的符号风格(一)(一)本讲稿第六页,共三十页第第7 7章章 跟踪层的应用跟踪
4、层的应用 7.1 添加几何对象到跟踪层添加几何对象到跟踪层控件、控件、对对象象属性、方法属性、方法 描描 述述soGeoTexAddPart往注记对象添加注记子对象soTextPartText返回/设置注记子对象的文本内容x返回/设置注记子对象文本停靠点的横坐标y返回/设置注记子对象文本停靠点的纵坐标soTextStyleFontName返回/设置注记字体的名称,即注记采用何种字体,如“宋体”、“黑体”等FontHeight 返回/设置注记字体的高度FontWidth 返回/设置注记字体的宽度(二)(二)本讲稿第七页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 参参 数数可可 选选类类
5、型型描描 述述objGeometry必选soGeometry要添加到跟踪图层上的几何对象objStyle必选soStyle几何对象的风格,如果 objGeometry 对象为文本,则本参数可以为空值strTag必选String用户标识几何事件对象的字符串,如几何事件对象名称,当调用此几何事件对象时,可直接用此字符串调用语法描述语法描述Long soTrackingLayer.AddEvent(objGeometry As soGeometry,objStyle As soStyle,strTag As String)参数说明:参数说明:7.1 添加几何对象到跟踪层添加几何对象到跟踪层本讲稿第八
6、页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 n实例实例:在打开的图层上,用鼠标点击在跟踪层上添加点,并在点的位置添加“北京超图”字样文本。窗体设计窗体设计:添加一个Command 控件并将它的Caption改为“添加几何对象”。实现步骤:实现步骤:(1)使用Action方法添加的跟踪点几何对象(2)在Tracked 事件中获取添加的点几何对象(3)设置该点对象添加到跟踪层上的显示风格soStyle(4)设置“北京超图”文本几何对象(5)设置文本几何对象添加到跟踪层的风格(6)添加几何对象和文本对象到跟踪层 7.1 添加几何对象到跟踪层添加几何对象到跟踪层本讲稿第九页,共三十页第第7
7、7章章 跟踪层的应用跟踪层的应用 代码:代码:、使用、使用 Action方法添加跟踪层几何对象方法添加跟踪层几何对象Private Sub Command1_Click()/添加几何对象:通过Action触发Tracked事件 SuperMap1.Action=scaTrackPoint End Sub、在、在 SuperMap_Tracked事件中将几何对象添加到跟踪层上事件中将几何对象添加到跟踪层上 Private Sub SuperMap1_Tracked()功能:将几何对象添加到跟踪层上(同时添加文本对象)1 定义几何对象变量和风格对象变量 Dim objGeoPoint As soG
8、eoPoint Dim objStyle As New soStyle 定义文本的相关对象 Dim objGeoText As New soGeoText Dim objTextPart As New soTextPart Dim objTextStyle As New soTextStyleSuperMap1.Action=scaZoomIn SuperMap1.Action=scaZoomOutSuperMap1.Action=scaPanSuperMap1.Action=scaSelect SuperMap1.Action=scaRegionSelectSuperMap1.Action=
9、scaEditCreatePoint本讲稿第十页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 2 获得几何对象 Set objGeoPoint=SuperMap1.TrackedGeometry 3 设置添加到跟踪层上几何对象的风格 With objStyle 点对象风格 .PenColor=vbRed .PenWidth=5 .SymbolStyle=1410 五角星 .SymbolSize=80 End With With objTextPart 文本子对象 .Text=北京超图 .x=objGeoPoint.x .y=objGeoPoint.y End With With objT
10、extStyle 文本风格 .Color=vbBlue .FontName=黑体 .FontHeight=10 .FontWidth=10 End With objGeoText.AddPart objTextPart 文本 Set objGeoText.TextStyle=objTextStyle风格 4 将几何对象添加到跟踪层上 SuperMap1.TrackingLayer.ClearEvents SuperMap1.TrackingLayer.AddEvent objGeoPoint,objStyle,R1 添加点 SuperMap1.TrackingLayer.AddEvent ob
11、jGeoText,Nothing,R2 添加文本 SuperMap1.TrackingLayer.Refresh Set objGeoPoint=Nothing Set objGeoText=Nothing Set objTextPart=Nothing Set objTextStyle=Nothing End Sub本讲稿第十一页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 运行结果:运行结果:本讲稿第十二页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 7.2 移动跟踪层上的几何对象移动跟踪层上的几何对象本讲稿第十三页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 7.2 移
12、动跟踪层上的几何对象移动跟踪层上的几何对象本讲稿第十四页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 7.2 移动跟踪层上的几何对象移动跟踪层上的几何对象对对 象象方方 法法 描描 述述soGeoEventMove用于移动TrackingLayer上的soGeoEvent对象MoveTo用于移动TrackingLayer上的soGeoEvent对象到指定位置语语法描述法描述 soGeoEvent.Move(x As Double,y As Double)参数说明:参参 数数可可 选选类类 型型描描 述述 x必选 Double 要移动X方向的距离,单位与数据集的单位相同 y必选 Doubl
13、e 要移动Y方向的距离,单位与数据集的单位相同本讲稿第十五页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 7.2 移动跟踪层上的几何对象移动跟踪层上的几何对象对对 象象方方 法法 描描 述述soGeoEventMove用于移动TrackingLayer上的soGeoEvent对象MoveTo用于移动TrackingLayer上的soGeoEvent对象到指定位置语语法描述法描述 soGeoEvent.MoveTo(x As Double,y As Double)参数说明:参参 数数可可 选选类类 型型描描 述述 x必选 Double 移动对象到x坐标,单位与数据集的单位相同 y必选 Do
14、uble 移动对象到y坐标,单位与数据集的单位相同本讲稿第十六页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 n 实例:实例:将6.1中添加的几何对象 X、Y方向移动各50单位 7.2 移动跟踪层上的几何对象移动跟踪层上的几何对象 窗体设计窗体设计:添加一个Command控件并将它的Caption 改为“移动几何对象”主要步骤主要步骤:(1)获得跟踪层的点对象;(2)移动点对象。本讲稿第十七页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 代码:代码:Private Sub Command4_Click()移动几何对象 Dim objGeoEvent As soGeoEvent 1
15、获得跟踪层上几何事件对象 Set objGeoEvent=SuperMap1.TrackingLayer.Event(1)2 移动 objGeoEvent.Move 50,50 Set objGeoEvent=SuperMap1.TrackingLayer.Event(2)objGeoEvent.Move 50,50 SuperMap1.TrackingLayer.Refresh Set objGeoEvent=NothingEnd Sub 7.2 移动跟踪层上的几何对象移动跟踪层上的几何对象本讲稿第十八页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 运行结果:运行结果:7.2 移动跟踪
16、层上的几何对象移动跟踪层上的几何对象本讲稿第十九页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 7.3 删除跟踪层上的几何对象删除跟踪层上的几何对象 删除实例分为删除指定实例删除指定实例和删除全部实例删除全部实例。删除指定实例不区分实例的类型,只要给定实例的索引号或标识名(Tag)。Private Sub Command12_Click()Dim objTrackingLayer As soTrackingLayer Set objTrackingLayer=SuperMap1.TrackingLayer objTrackingLayer.RemoveEvent 1 (或:ObjTrac
17、kingLayer.RemoveEvent“R1)objTrackingLayer.RefreshExEnd Sub 删除指定实例删除指定实例本讲稿第二十页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 关于关于RefreshEx跟踪层有两种刷新方法:soTrackingLayer.Refresh soTrackingLayer.RefreshEx Refresh 用来刷新整个跟踪层,RefreshEx 比 Refresh 更加智能,它仅刷新当前时刻发生位置变化的对象,避免整个图层的闪动。SuperMap 控件自身在刷新的同时也刷新了跟踪图层。这种刷新只是针对地图窗口而提供的方法;跟踪图层
18、的刷新只局限于跟踪层,其它的层都不刷新;因此,跟踪图层的刷新速度比 SuperMap 自身的刷新要快得多。本讲稿第二十一页,共三十页第7章 跟踪层的应用 删除全部实例将从跟踪图层上清除掉所有的临时对象,不区分实例的类型,恢复跟踪图层原来的面貌。代码:代码:objTrackingLayer.ClearEvents objTrackingLayer.Refresh 删除全部实例删除全部实例本讲稿第二十二页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 7.4 动态移动并闪烁示例(应用)动态移动并闪烁示例(应用)SuperMap 中开放了一些对TrackingLayer 操作的事件,在这些事件中
19、用户可以用程序来控制跟踪的过程,通过组合这些事件可以实现内容丰富的动态目标移动、闪烁等功能,开放的事件如下:SuperMap_AfterTrackingLayerDraw 绘制跟踪图层之后触发 SuperMap_BeforeTrackingLayerDraw 绘制跟踪图层之前触发 SuperMap_Tracking 内存中绘制对象过程中触发 SuperMap_Tracked 内存中绘制对象结束后触发 本讲稿第二十三页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 7.4 动态移动并闪烁示例(应用)动态移动并闪烁示例(应用)本讲稿第二十四页,共三十页第7章 跟踪层的应用 n 代码:代码:定义
20、公共变量 Dim Points As soPoints 定义点集合变量 Dim nCurPoint As Long 定义点实例的计数器 Dim styTracking As New soStyle 定义风格变量 Dim ln As soGeoLine 定义线对象变量 Dim lnNew As soGeoLine 定义线对象变量 Dim dLen As Double 定义长度变量 Dim CurGeome As soGeometry 定义空间对象变量 SuperMap 上任意绘制一根折线(在Command中绘制)SuperMap.Action=scaTrackPolyline 示例:在系统中实现
21、跟踪图层的跟踪示例:在系统中实现跟踪图层的跟踪n 实现思路实现思路:(1)在SuperMap1中绘制一根折线;(2)在 SuperMap的 Tracked 事件中获取该折线,进行 40 等分;(3)在时间控件Timer事件里依次在折线的每一个节点上显示一个点实例,模拟画线的路径,从而完成点的动态移动和闪烁。本讲稿第二十五页,共三十页第7章 跟踪层的应用 在 SuperMap 的 Tracked 事件中获取折线并生成新的折线:Set CurGeome=SuperMap1.TrackedGeometry 获取TrackingLayer 上的线对象 If CurGeome.Type=scgLine
22、Then Set ln=CurGeome End If If Not(ln Is Nothing)Then styTracking.PenColor=vbBlue 设置折线的显示风格 styTracking.PenWidth=6 dLen=ln.Length 本讲稿第二十六页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 对折线进行重采样,等距分为40段 Set lnNew=ln.ResampleEquidistantly(dLen/40)If Not(lnNew Is Nothing)Then Set Points=lnNew.GetPartAt(1)获取采样后折线的点集合 nCurPo
23、int=1 点计数器当前值为 1 Timer1.Interval=500 设置定时器触发两次事件之间的毫秒数 启动定时器响应事件开关,触发Timer1_Timer()事件 Timer1.Enabled=True End If End If End Sub GetPartAt(1)说明:获取复合对象的一个子对象 参数:子对象的索引(从1开始)。本讲稿第二十七页,共三十页第7章 跟踪层的应用 在时间控件Timer 事件中,跟踪层显示并移动红点,表示对线的跟踪 Private Sub Timer1_Timer()If Not(Points Is Nothing)Then If Points.Coun
24、t nCurPoint Then Dim pnt As New soGeoPoint 创建点对象变量 Dim style As New soStyle 创建风格对象变量 pnt.x=Points.Item(nCurPoint).x 获取点实例的 X 坐标 pnt.y=Points.Item(nCurPoint).y 获取点实例的 Y 坐标 style.PenColor=255 定义点实例的风格 style.SymbolSize=96 style.SymbolStyle=1 思考:思考:Points.Count=?本讲稿第二十八页,共三十页第第7 7章章 跟踪层的应用跟踪层的应用 SuperMa
25、p1.TrackingLayer.ClearEvents 清除所有实例 SuperMap1.TrackingLayer.AddEvent lnNew,styTracking,增加线实例 SuperMap1.TrackingLayer.AddEvent pnt,style,增加点实例 SuperMap1.TrackingLayer.Refresh 刷新 nCurPoint=nCurPoint+1 定位下一个点的索引 Else SuperMap1.TrackingLayer.ClearEvents 清除所有实例 SuperMap1.TrackingLayer.Refresh 刷新跟踪图层 Timer1.Enabled=False 停止点实例的跟踪 End If End IfEnd Sub 本讲稿第二十九页,共三十页第7章 跟踪层的应用 n 运行结果:运行结果:本讲稿第三十页,共三十页