资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,7,章 跟踪层,(TrackingLayer),的应用,本 章 目 标,通过本章,能够使用 SuperMap Objects开发实现以下功能:,1,、添加几何对象到跟踪层,并高亮显示,2,、移动跟踪层上的几何对象,3,、掌握对象,soTrackingLayer,与,Tracked,事件的使用,4,、删除跟踪层几何对象,5,、动态跟踪,第,7,章 跟踪层的应用,第,7,章 跟踪层的应用,知识准备,跟踪层(TrackingLayer)是临时存储几何对象的场所,适用于几何对象变化频繁,需要经常动态刷新的各种应用,如导航图中的视野范围框随大地图窗口视野范围的变化而不断变化,量算距离和面积时量算位置的变化,GPS 接收机接收数据的实时变化。,跟踪图层是一种特殊的图层,它位于所有图层(soLayer)的最上面,这个图层上绘制的空间对象不保存到数据源文件中。跟踪层上的数据没有属性数据。,跟踪层中的所有对象都存储在内存中,刷新速度快,但在使用时,应避免将所有临时对象都放在跟踪层中,使跟踪层变成一个临时存储空间,这样会降低效率。,第,7,章 跟踪层的应用,预期效果,第,7,章 跟踪层的应用,7.1 添加几何对象到跟踪层,控件、对象,属性、方法与事件,描 述,soTrackingLayer,AddEvent,用于按照指定风格添加几何对象到跟踪图层上,成功则返回跟踪图层中几何事件对象的总数目,ClearEvents,用于清除跟踪图层上的所有几何事件对象,SuperMap1,Tracked,当在 Track 相关操作结束绘制操作并且产生 TrackedGeometry 对象时触发该事件,soStyle,SymbolRotation,返回/设置符号的旋转角度,旋转的方向为逆时针方向,单位为度,SymbolSize,返回/设置符号的大小,单位为0.1毫米,SymbolStyle,返回/设置点对象的符号风格,(一),第,7,章 跟踪层的应用,7.1 添加几何对象到跟踪层,控件、对象,属性、方法,描 述,soGeoTex,AddPart,往注记对象添加注记子对象,soTextPart,Text,返回/设置注记子对象的文本内容,x,返回/设置注记子对象文本停靠点的横坐标,y,返回/设置注记子对象文本停靠点的纵坐标,soTextStyle,FontName,返回/设置注记字体的名称,即注记采用何种字体,如“宋体”、“黑体”等,FontHeight,返回/设置注记字体的高度,FontWidth,返回/设置注记字体的宽度,(二),第,7,章 跟踪层的应用,参 数,可 选,类 型,描 述,objGeometry,必选,soGeometry,要添加到跟踪图层上的几何对象,objStyle,必选,soStyle,几何对象的风格,如果 objGeometry 对象为文本,则本参数可以为空值,strTag,必选,String,用户标识几何事件对象的字符串,如几何事件对象名称,当调用此几何事件对象时,可直接用此字符串调用,语法描述,Long,soTrackingLayer.,AddEvent,(,objGeometry,As,soGeometry,objStyle,As,soStyle,strTag,As String),参数说明:,7.1 添加几何对象到跟踪层,第,7,章 跟踪层的应用,实例,:,在打开的图层上,用鼠标点击在跟踪层上添加点,并在点的位置添加,“,北京超图,”,字样文本。,窗体设计,:,添加一个,Command,控件并将它的,Caption,改为,“,添加几何对象,”,。,实现步骤:,(,1,)使用,Action,方法添加的跟踪点几何对象,(,2,)在,Tracked,事件中获取添加的点几何对象,(,3,)设置该点对象添加到跟踪层上的显示风格,soStyle,(,4,)设置“北京超图”文本几何对象,(,5,)设置文本几何对象添加到跟踪层的风格,(,6,)添加几何对象和文本对象到跟踪层,7.1 添加几何对象到跟踪层,第,7,章 跟踪层的应用,代码:,、使用,Action,方法添加跟踪层几何对象,Private Sub Command1_Click()/,添加几何对象:通过,Action,触发,Tracked,事件,SuperMap1.Action=,scaTrackPoint,End Sub,、在 SuperMap_Tracked事件中将几何对象添加到跟踪层上,Private Sub SuperMap1_Tracked()功能:将几何对象添加到跟踪层上(同时添加文本对象),1 定义几何对象变量和风格对象变量,Dim objGeoPoint As soGeoPoint,Dim objStyle As New soStyle,定义文本的相关对象,Dim objGeoText As New soGeoText,Dim objTextPart As New soTextPart,Dim objTextStyle As New soTextStyle,SuperMap1.Action=scaZoomIn,SuperMap1.Action=scaZoomOut,SuperMap1.Action=scaPan,SuperMap1.Action=scaSelect,SuperMap1.Action=scaRegionSelect,SuperMap1.Action=scaEditCreatePoint,第,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 objTextStyle 文本风格,.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 objGeoText,Nothing,R2,添加文本,SuperMap1.TrackingLayer.Refresh,Set objGeoPoint=Nothing,Set objGeoText=Nothing,Set objTextPart=Nothing,Set objTextStyle=Nothing,End Sub,第,7,章 跟踪层的应用,运行结果:,第,7,章 跟踪层的应用,7.,2,移动跟踪层上的几何对象,第,7,章 跟踪层的应用,7.,2,移动跟踪层上的几何对象,第,7,章 跟踪层的应用,7.,2,移动跟踪层上的几何对象,对 象,方 法,描 述,soGeoEvent,Move,用于移动TrackingLayer上的soGeoEvent对象,MoveTo,用于移动TrackingLayer上的soGeoEvent对象到指定位置,语法描述,soGeoEvent.,Move,(x,As Double,y As Double),参数说明:,参 数,可 选,类 型,描 述,x,必选,Double,要移动X方向的距离,单位与数据集的单位相同,y,必选,Double,要移动Y方向的距离,单位与数据集的单位相同,第,7,章 跟踪层的应用,7.,2,移动跟踪层上的几何对象,对 象,方 法,描 述,soGeoEvent,Move,用于移动TrackingLayer上的soGeoEvent对象,MoveTo,用于移动TrackingLayer上的soGeoEvent对象到指定位置,语法描述,soGeoEvent.,MoveTo,(x As Double,y As Double),参数说明:,参 数,可 选,类 型,描 述,x,必选,Double,移动对象到x坐标,单位与数据集的单位相同,y,必选,Double,移动对象到y坐标,单位与数据集的单位相同,第,7,章 跟踪层的应用,实例:,将,6.1,中添加的几何对象,X,、,Y,方向移动各,50,单位,7.,2,移动跟踪层上的几何对象,窗体设计,:,添加一个,Command,控件并将它的,Caption,改为“移动几何对象”,主要步骤,:,(,1,),获得跟踪层的点对象;,(,2,),移动点对象。,第,7,章 跟踪层的应用,代码:,Private Sub Command4_Click(),移动几何对象,Dim,objGeoEvent,As,soGeoEvent,1,获得跟踪层上几何事件对象,Set,objGeoEvent,=SuperMap1.TrackingLayer.Event(1),2,移动,objGeoEvent.Move,50,50,Set,objGeoEvent,=SuperMap1.TrackingLayer.Event(2),objGeoEvent.Move,50,50,Set,objGeoEvent,=Nothing,End Sub,7.,2,移动跟踪层上的几何对象,第7章 跟踪层的应用,运行结果:,7.,2,移动跟踪层上的几何对象,第7章 跟踪层的应用,7.,3,删除跟踪层上的几何对象,删除实例分为,删除指定实例,和,删除全部实例,。删除指定实例不区分实例的类型,只要给定实例的索引号或标识名(Tag)。,Private Sub Command12_Click(),Dim objTrackingLayer As soTrackingLayer,Set objTrackingLayer=SuperMap1.TrackingLayer,objTrackingLayer.RemoveEvent 1,(或:ObjTrackingLayer.RemoveEvent“R1),objTrackingLayer.RefreshEx,End Sub,删除指定实例,第7章 跟踪层的应用,关于,RefreshEx,跟踪层有两种刷新方法:,soTrackingLayer.Refresh,soTrackingLayer.RefreshEx,Refresh,用来刷新整个跟踪层,,RefreshEx,比,Refresh,更加智能,它仅刷新当前时刻发生位置变化的对象,避免整个图层的闪动。,SuperMap,控件自身在刷新的同时也刷新了跟踪图层。这种刷新只是针对地图窗口而提供的方法;跟踪图层的刷新只局限于跟踪层,其它的层都不刷新;因此,跟踪图层的刷新速度比,SuperMap,自身的刷新要快得多。,第7章 跟踪层的应用,删除全部实例将从跟踪图层上清除掉所有的临时对象,不区分实例的类型,恢复跟踪图层原来的面貌。,代码:,objTrackingLayer.ClearEvents,objTrackingLayer.Refresh,删除全部实例,第7章 跟踪层的应用,7.,4,动态移动并闪烁示例(应用),SuperMap 中开放了一些对TrackingLayer 操作的事件,在这些事件中用户可以用程序来控制跟踪的过程,通过组合这些事件可以实现内容丰富的动态目标移动、闪烁等功能,开放的事件如下:,SuperMap_AfterTrackingLayerDraw,绘
展开阅读全文