《跟踪层的应用》PPT课件.ppt

上传人:za****8 文档编号:12725863 上传时间:2020-05-19 格式:PPT 页数:30 大小:1.85MB
返回 下载 相关 举报
《跟踪层的应用》PPT课件.ppt_第1页
第1页 / 共30页
《跟踪层的应用》PPT课件.ppt_第2页
第2页 / 共30页
《跟踪层的应用》PPT课件.ppt_第3页
第3页 / 共30页
点击查看更多>>
资源描述
,第7章跟踪层(TrackingLayer)的应用,本章目标,通过本章,能够使用SuperMapObjects开发实现以下功能:1、添加几何对象到跟踪层,并高亮显示2、移动跟踪层上的几何对象3、掌握对象soTrackingLayer与Tracked事件的使用4、删除跟踪层几何对象5、动态跟踪,第7章跟踪层的应用,第7章跟踪层的应用,知识准备,跟踪层(TrackingLayer)是临时存储几何对象的场所,适用于几何对象变化频繁,需要经常动态刷新的各种应用,如导航图中的视野范围框随大地图窗口视野范围的变化而不断变化,量算距离和面积时量算位置的变化,GPS接收机接收数据的实时变化。跟踪图层是一种特殊的图层,它位于所有图层(soLayer)的最上面,这个图层上绘制的空间对象不保存到数据源文件中。跟踪层上的数据没有属性数据。跟踪层中的所有对象都存储在内存中,刷新速度快,但在使用时,应避免将所有临时对象都放在跟踪层中,使跟踪层变成一个临时存储空间,这样会降低效率。,第7章跟踪层的应用,预期效果,第7章跟踪层的应用,7.1添加几何对象到跟踪层,(一),第7章跟踪层的应用,7.1添加几何对象到跟踪层,(二),第7章跟踪层的应用,语法描述LongsoTrackingLayer.AddEvent(objGeometryAssoGeometry,objStyleAssoStyle,strTagAsString)参数说明:,7.1添加几何对象到跟踪层,第7章跟踪层的应用,实例:在打开的图层上,用鼠标点击在跟踪层上添加点,并在点的位置添加“北京超图”字样文本。,窗体设计:添加一个Command控件并将它的Caption改为“添加几何对象”。,实现步骤:(1)使用Action方法添加的跟踪点几何对象(2)在Tracked事件中获取添加的点几何对象(3)设置该点对象添加到跟踪层上的显示风格soStyle(4)设置“北京超图”文本几何对象(5)设置文本几何对象添加到跟踪层的风格(6)添加几何对象和文本对象到跟踪层,7.1添加几何对象到跟踪层,第7章跟踪层的应用,代码:、使用Action方法添加跟踪层几何对象PrivateSubCommand1_Click()/添加几何对象:通过Action触发Tracked事件SuperMap1.Action=scaTrackPointEndSub,、在SuperMap_Tracked事件中将几何对象添加到跟踪层上PrivateSubSuperMap1_Tracked()功能:将几何对象添加到跟踪层上(同时添加文本对象)1定义几何对象变量和风格对象变量DimobjGeoPointAssoGeoPointDimobjStyleAsNewsoStyle定义文本的相关对象DimobjGeoTextAsNewsoGeoTextDimobjTextPartAsNewsoTextPartDimobjTextStyleAsNewsoTextStyle,SuperMap1.Action=scaZoomInSuperMap1.Action=scaZoomOutSuperMap1.Action=scaPanSuperMap1.Action=scaSelectSuperMap1.Action=scaRegionSelectSuperMap1.Action=scaEditCreatePoint,第7章跟踪层的应用,2获得几何对象SetobjGeoPoint=SuperMap1.TrackedGeometry3设置添加到跟踪层上几何对象的风格WithobjStyle点对象风格.PenColor=vbRed.PenWidth=5.SymbolStyle=1410五角星.SymbolSize=80EndWithWithobjTextPart文本子对象.Text=北京超图.x=objGeoPoint.x.y=objGeoPoint.yEndWithWithobjTextStyle文本风格.Color=vbBlue.FontName=黑体.FontHeight=10.FontWidth=10EndWith,objGeoText.AddPartobjTextPart文本SetobjGeoText.TextStyle=objTextStyle风格4将几何对象添加到跟踪层上SuperMap1.TrackingLayer.ClearEventsSuperMap1.TrackingLayer.AddEventobjGeoPoint,objStyle,R1添加点SuperMap1.TrackingLayer.AddEventobjGeoText,Nothing,R2添加文本SuperMap1.TrackingLayer.RefreshSetobjGeoPoint=NothingSetobjGeoText=NothingSetobjTextPart=NothingSetobjTextStyle=NothingEndSub,第7章跟踪层的应用,运行结果:,第7章跟踪层的应用,7.2移动跟踪层上的几何对象,第7章跟踪层的应用,7.2移动跟踪层上的几何对象,第7章跟踪层的应用,7.2移动跟踪层上的几何对象,语法描述soGeoEvent.Move(xAsDouble,yAsDouble)参数说明:,第7章跟踪层的应用,7.2移动跟踪层上的几何对象,语法描述soGeoEvent.MoveTo(xAsDouble,yAsDouble)参数说明:,第7章跟踪层的应用,实例:将6.1中添加的几何对象X、Y方向移动各50单位,7.2移动跟踪层上的几何对象,窗体设计:添加一个Command控件并将它的Caption改为“移动几何对象”主要步骤:(1)获得跟踪层的点对象;(2)移动点对象。,第7章跟踪层的应用,代码:PrivateSubCommand4_Click()移动几何对象DimobjGeoEventAssoGeoEvent1获得跟踪层上几何事件对象SetobjGeoEvent=SuperMap1.TrackingLayer.Event(1)2移动objGeoEvent.Move50,50SetobjGeoEvent=SuperMap1.TrackingLayer.Event(2)objGeoEvent.Move50,50SuperMap1.TrackingLayer.RefreshSetobjGeoEvent=NothingEndSub,7.2移动跟踪层上的几何对象,第7章跟踪层的应用,运行结果:,7.2移动跟踪层上的几何对象,第7章跟踪层的应用,7.3删除跟踪层上的几何对象,删除实例分为删除指定实例和删除全部实例。删除指定实例不区分实例的类型,只要给定实例的索引号或标识名(Tag)。,PrivateSubCommand12_Click()DimobjTrackingLayerAssoTrackingLayerSetobjTrackingLayer=SuperMap1.TrackingLayerobjTrackingLayer.RemoveEvent1(或:ObjTrackingLayer.RemoveEvent“R1)objTrackingLayer.RefreshExEndSub,删除指定实例,第7章跟踪层的应用,关于RefreshEx,跟踪层有两种刷新方法:soTrackingLayer.RefreshsoTrackingLayer.RefreshExRefresh用来刷新整个跟踪层,RefreshEx比Refresh更加智能,它仅刷新当前时刻发生位置变化的对象,避免整个图层的闪动。SuperMap控件自身在刷新的同时也刷新了跟踪图层。这种刷新只是针对地图窗口而提供的方法;跟踪图层的刷新只局限于跟踪层,其它的层都不刷新;因此,跟踪图层的刷新速度比SuperMap自身的刷新要快得多。,第7章跟踪层的应用,删除全部实例将从跟踪图层上清除掉所有的临时对象,不区分实例的类型,恢复跟踪图层原来的面貌。代码:objTrackingLayer.ClearEventsobjTrackingLayer.Refresh,删除全部实例,第7章跟踪层的应用,7.4动态移动并闪烁示例(应用),SuperMap中开放了一些对TrackingLayer操作的事件,在这些事件中用户可以用程序来控制跟踪的过程,通过组合这些事件可以实现内容丰富的动态目标移动、闪烁等功能,开放的事件如下:SuperMap_AfterTrackingLayerDraw绘制跟踪图层之后触发SuperMap_BeforeTrackingLayerDraw绘制跟踪图层之前触发SuperMap_Tracking内存中绘制对象过程中触发SuperMap_Tracked内存中绘制对象结束后触发,第7章跟踪层的应用,7.4动态移动并闪烁示例(应用),第7章跟踪层的应用,代码:定义公共变量DimPointsAssoPoints定义点集合变量DimnCurPointAsLong定义点实例的计数器DimstyTrackingAsNewsoStyle定义风格变量DimlnAssoGeoLine定义线对象变量DimlnNewAssoGeoLine定义线对象变量DimdLenAsDouble定义长度变量DimCurGeomeAssoGeometry定义空间对象变量SuperMap上任意绘制一根折线(在Command中绘制)SuperMap.Action=scaTrackPolyline,示例:在系统中实现跟踪图层的跟踪实现思路:(1)在SuperMap1中绘制一根折线;(2)在SuperMap的Tracked事件中获取该折线,进行40等分;(3)在时间控件Timer事件里依次在折线的每一个节点上显示一个点实例,模拟画线的路径,从而完成点的动态移动和闪烁。,第7章跟踪层的应用,在SuperMap的Tracked事件中获取折线并生成新的折线:,SetCurGeome=SuperMap1.TrackedGeometry获取TrackingLayer上的线对象IfCurGeome.Type=scgLineThenSetln=CurGeomeEndIfIfNot(lnIsNothing)ThenstyTracking.PenColor=vbBlue设置折线的显示风格styTracking.PenWidth=6dLen=ln.Length,第7章跟踪层的应用,对折线进行重采样,等距分为40段SetlnNew=ln.ResampleEquidistantly(dLen/40)IfNot(lnNewIsNothing)ThenSetPoints=lnNew.GetPartAt(1)获取采样后折线的点集合nCurPoint=1点计数器当前值为1Timer1.Interval=500设置定时器触发两次事件之间的毫秒数启动定时器响应事件开关,触发Timer1_Timer()事件Timer1.Enabled=TrueEndIfEndIfEndSub,GetPartAt(1)说明:获取复合对象的一个子对象参数:子对象的索引(从1开始)。,第7章跟踪层的应用,在时间控件Timer事件中,跟踪层显示并移动红点,表示对线的跟踪,PrivateSubTimer1_Timer()IfNot(PointsIsNothing)ThenIfPoints.CountnCurPointThenDimpntAsNewsoGeoPoint创建点对象变量DimstyleAsNewsoStyle创建风格对象变量pnt.x=Points.Item(nCurPoint).x获取点实例的X坐标pnt.y=Points.Item(nCurPoint).y获取点实例的Y坐标style.PenColor=255定义点实例的风格style.SymbolSize=96style.SymbolStyle=1,思考:Points.Count=?,第7章跟踪层的应用,SuperMap1.TrackingLayer.ClearEvents清除所有实例SuperMap1.TrackingLayer.AddEventlnNew,styTracking,增加线实例SuperMap1.TrackingLayer.AddEventpnt,style,增加点实例SuperMap1.TrackingLayer.Refresh刷新nCurPoint=nCurPoint+1定位下一个点的索引ElseSuperMap1.TrackingLayer.ClearEvents清除所有实例SuperMap1.TrackingLayer.Refresh刷新跟踪图层Timer1.Enabled=False停止点实例的跟踪EndIfEndIfEndSub,第7章跟踪层的应用,运行结果:,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!