版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,第7章 跟踪层(TrackingLayer)的应用,本 章 目 标,通过本章,能够使用 SuperMap Objects开发实现以下功能: 1、添加几何对象到跟踪层,并高亮显示 2、移动跟踪层上的几何对象 3、掌握对象soTrackingLayer与Tracked事件的使用 4、删除跟踪层几何对象 5、动态跟踪,第7章 跟踪层的应用,第7章 跟踪层的应用,知识准备,跟踪层(TrackingLayer)是临时存储几何对象的场所,适用于几何对象变化频繁,需要经常动态刷新的各种应用,如导航图中的视野范围框随大地图窗口视野范围的变化而不断变化,量算距离和面积时量算位置的变化,GPS 接收机接收数据的
2、实时变化。 跟踪图层是一种特殊的图层,它位于所有图层(soLayer)的最上面,这个图层上绘制的空间对象不保存到数据源文件中。跟踪层上的数据没有属性数据。 跟踪层中的所有对象都存储在内存中,刷新速度快,但在使用时,应避免将所有临时对象都放在跟踪层中,使跟踪层变成一个临时存储空间,这样会降低效率。,第7章 跟踪层的应用,预期效果,第7章 跟踪层的应用,7.1 添加几何对象到跟踪层,(一),第7章 跟踪层的应用,7.1 添加几何对象到跟踪层,(二),第7章 跟踪层的应用,语法描述 Long soTrackingLayer.AddEvent ( objGeometry As soGeometry,
3、objStyle As soStyle, strTag As String) 参数说明:,7.1 添加几何对象到跟踪层,第7章 跟踪层的应用,实例:在打开的图层上,用鼠标点击在跟踪层上添加点,并在点的位置添加“北京超图”字样文本。,窗体设计:添加一个Command 控件并将它的Caption改为“添加几何对象”。,实现步骤: (1) 使用Action方法添加的跟踪点几何对象 (2) 在Tracked 事件中获取添加的点几何对象 (3) 设置该点对象添加到跟踪层上的显示风格soStyle (4) 设置“北京超图”文本几何对象 (5) 设置文本几何对象添加到跟踪层的风格 (6) 添加几何对象和文本
4、对象到跟踪层,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 D
5、im 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.Ac
6、tion = 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 o
7、bjTextStyle 文本风格 .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.TrackingLa
8、yer.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.
9、Move(x As Double, y As Double) 参数说明:,第7章 跟踪层的应用,7.2 移动跟踪层上的几何对象,语法描述 soGeoEvent.MoveTo (x As Double, y As Double) 参数说明:,第7章 跟踪层的应用,实例:将6.1中添加的几何对象 X、Y方向移动各50单位,7.2 移动跟踪层上的几何对象,窗体设计:添加一个Command控件并将它的Caption 改为“移动几何对象” 主要步骤 : (1)获得跟踪层的点对象; (2)移动点对象。,第7章 跟踪层的应用,代码: Private Sub Command4_Click() 移动几何对象 D
10、im 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 SuperMap1.TrackingLayer.Refresh Set objGeoEvent = Nothing End Sub,7.2 移动跟踪层上的几何对象,第7章 跟踪层的应用,运行结果:,7.
11、2 移动跟踪层上的几何对象,第7章 跟踪层的应用,7.3 删除跟踪层上的几何对象,删除实例分为删除指定实例和删除全部实例。删除指定实例不区分实例的类型,只要给定实例的索引号或标识名(Tag)。,Private Sub Command12_Click() Dim objTrackingLayer As soTrackingLayer Set objTrackingLayer = SuperMap1.TrackingLayer objTrackingLayer.RemoveEvent 1 (或:ObjTrackingLayer.RemoveEvent “R1) objTrackingLayer.R
12、efreshEx End Sub,删除指定实例,第7章 跟踪层的应用,关于RefreshEx,跟踪层有两种刷新方法: soTrackingLayer.Refresh soTrackingLayer.RefreshEx Refresh 用来刷新整个跟踪层,RefreshEx 比 Refresh 更加智能,它仅刷新当前时刻发生位置变化的对象,避免整个图层的闪动。 SuperMap 控件自身在刷新的同时也刷新了跟踪图层。这种刷新只是针对地图窗口而提供的方法;跟踪图层的刷新只局限于跟踪层,其它的层都不刷新;因此,跟踪图层的刷新速度比 SuperMap 自身的刷新要快得多。,第7章 跟踪层的应用,删除全
13、部实例将从跟踪图层上清除掉所有的临时对象,不区分实例的类型,恢复跟踪图层原来的面貌。 代码: objTrackingLayer.ClearEvents objTrackingLayer.Refresh,删除全部实例,第7章 跟踪层的应用,7.4 动态移动并闪烁示例(应用),SuperMap 中开放了一些对TrackingLayer 操作的事件,在这些事件中用户可以用程序来控制跟踪的过程,通过组合这些事件可以实现内容丰富的动态目标移动、闪烁等功能,开放的事件如下: SuperMap_AfterTrackingLayerDraw 绘制跟踪图层之后触发 SuperMap_BeforeTracking
14、LayerDraw 绘制跟踪图层之前触发 SuperMap_Tracking 内存中绘制对象过程中触发 SuperMap_Tracked 内存中绘制对象结束后触发,第7章 跟踪层的应用,7.4 动态移动并闪烁示例(应用),第7章 跟踪层的应用,代码: 定义公共变量 Dim Points As soPoints 定义点集合变量 Dim nCurPoint As Long 定义点实例的计数器 Dim styTracking As New soStyle 定义风格变量 Dim ln As soGeoLine 定义线对象变量 Dim lnNew As soGeoLine 定义线对象变量 Dim dLe
15、n As Double 定义长度变量 Dim CurGeome As soGeometry 定义空间对象变量 SuperMap 上任意绘制一根折线(在Command中绘制) SuperMap.Action = scaTrackPolyline,示例:在系统中实现跟踪图层的跟踪 实现思路: (1)在SuperMap1中绘制一根折线; (2)在 SuperMap的 Tracked 事件中获取该折线,进行 40 等分; (3)在时间控件Timer事件里依次在折线的每一个节点上显示一个点实例,模拟画线的路径,从而完成点的动态移动和闪烁。,第7章 跟踪层的应用,在 SuperMap 的 Tracked
16、事件中获取折线并生成新的折线:,Set CurGeome = SuperMap1.TrackedGeometry 获取TrackingLayer 上的线对象 If CurGeome.Type = scgLine Then Set ln = CurGeome End If If Not (ln Is Nothing) Then styTracking.PenColor = vbBlue 设置折线的显示风格 styTracking.PenWidth = 6 dLen = ln.Length,第7章 跟踪层的应用,对折线进行重采样,等距分为40段 Set lnNew = ln.ResampleEqu
17、idistantly ( dLen / 40 ) If Not (lnNew Is Nothing) Then Set Points = lnNew.GetPartAt(1) 获取采样后折线的点集合 nCurPoint = 1 点计数器当前值为 1 Timer1.Interval = 500 设置定时器触发两次事件之间的毫秒数 启动定时器响应事件开关,触发Timer1_Timer()事件 Timer1.Enabled = True End If End If End Sub,GetPartAt(1) 说明:获取复合对象的一个子对象 参数:子对象的索引(从1开始)。,第7章 跟踪层的应用,在时间
18、控件Timer 事件中,跟踪层显示并移动红点,表示对线的跟踪,Private Sub Timer1_Timer() If Not (Points Is Nothing) Then If Points.Count 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章 跟踪层的应用,SuperMap1.TrackingLayer.ClearEvents 清除所有实例 SuperMap1.TrackingLayer.AddEvent lnNew, styTra
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术班班级奖惩制度范本
- 大学寝室管理奖惩制度
- 生产重大异常奖惩制度
- 收货员奖惩制度条例规定
- 六年级课堂奖惩制度
- 流水线小组长奖惩制度
- 财务收支审计奖惩制度
- 超市员工考核奖惩制度
- 庭审奖惩制度汇编模板
- 家庭作业语文奖惩制度
- 承台墩身施工安全培训课件
- 烟花爆竹储存培训课件
- 静脉输液不良反应临床识别与应急处理标准化流程指南
- 无偿献血培训课件
- 敬老院及附属工程监理规划以及实施细则
- DG∕T 017-2021 谷物烘干机标准
- 红曲科普课件
- 2025极狐品牌官方直播运营方案
- 2026年江西电力职业技术学院单招职业技能考试题库及参考答案详解一套
- DB32/T 4400-2022 饮用水次氯酸钠消毒技术规程
- 2025年重庆市政府采购评审专家考试真题含答案
评论
0/150
提交评论