利用动态图层实现数据的实时显示
动态图层是一个自定义图层,因此至少应该继承ILayer,IDynamiclayer和IGeoDataset这三个接口,好在Esri提供了一个BaseDynamicLayer这个抽象类,该接口已经继承了我们所说的相关接口,因此我们只需要在实现动态图层的时候继承该类就行.
l IDynamicMap—该接口提供Enable属性用来控制动态显示是否可用,这个接口和我们地图是一一对应的.但我们要使用动态图层的时候,必须用该接口开启动态显示功能,也就是Enable属性设置为true。
l IDynamicLayer—该接口和Ialyer以及IGeoDataset接口写作完成动态显示,也就是符号的绘制等,此接口提供了自定义图层动态显示内容的机制
l IDynamicScreenDisplay—该接口控制是否启用动态显示
l IDynamicGlyph—这个接口用来处理资源,这些资源可以是线,点,文本,这些资源作为符号将被动显示。
l IDynamicGlyphFactory—该接口用来管理动态符号,用此接口可以创建,删除动态符号,这些符号就是我们上面所提到的IDynamicGlyph的内容
l IDynamicSymbolProperties—该接口用来管理显示符号的大小,比例尺,颜色等.
l IDynamicDisplay— IDynamicDisplay提供了在地图上描绘几何图形的绘图机制,并且提供了访问动态符号工厂对象.在地图上绘制不同的几何图形,该接口和IDynamicSymbolProperties接口协同,使用IDynamicSymbolProperties来设置的动态符号,然后使用IDynamicDisplay绘制形状。IDynamicDisplay接口其实是下面几何绘图回调函数的参数IDynamicLayer.DrawDynamicLayer; IDynamicMapEvents.BeforeDynamicDraw; IDynamicMapEvents.AfterDynamicDraw.
1.4 动态绘制模式
动态图层有两种绘制模式,如下:
- 重写 IDynamicLayer.DrawDynamicLayer方法
- 通过动态地图的事件:
IDynamicMapEvents.BeforeDynamicDraw
IDynamicMapEvents.AfterDynamicDraw
1.6 绘制动态图层
每一个绘图周期内,动态地图检查每个动态层的状态。如果一个动态层需要重新绘制(动态图层需要重新生成新的绘图命令),动态地图根据相应的绘图阶段调用动态层的DrawDynamicLayer方法,为动态层将产生一套新的绘图命令。如果有多于一个需要重新生成绘图命令的动态图层,则整个动态显示需要重新绘制。
Immediate—不存储绘图命令. 如果它报告其当前的阶段是脏,在这种情况下,绘制命令,将立即执行
Compiled—在一个清单中存储绘图命令. 动态显示将使用这个清单列表绘图,当dity 改变了这个清单列表就重新创建。在编译阶段,如果它报告编译阶段是脏的并且它重新编译的速度间隔已经过去了,当这连个条件同时满足的时候,将重新编译显示列表和动态层的绘图命令。
DrawDynamicLayer | 在一个给定的阶段向具体的设备绘制图层. |
DynamicLayerDirty | 指示动态图层从上一个指定的绘制阶段是否发生改变 |
DynamicRecompileRate | 重新编译速率是在编译阶段调用绘图方法的时间间隔。 |
当重新绘制的时候,动态显示遍历动态图层并按照下面的步骤:
通过检查立即阶段的DynamicLayerDirty以重新编译是否需要,如果任何一个动态图层在理解阶段设置了ditry标志,所有的动态图层都会在立即阶段调用DrawDynamicLayer方法
在立即阶段直接调用DrawDynamicLayer方法
通过检查编译阶段的DynamicLayerDirty和DynamicRecompileRate属性确定编译是不是需要
如果需要的话,在编译阶段通过调用DrawDynamicLayer方法重新编译这个图层
在编译阶段通过显示裂变绘图
动态图层是一个自定义的图层,当我们定义了这个动态图层之后,他就和一个普通的图层一样,需要添加到一个地图中,然后我们就可以在上面绘制符号和图形等,要使用一个动态图层,按下面的步骤就可以完成:
1.7.1 开启动态地图功能
1.7.2 定义自定义的动态图层并重写DrawDynamicLayer方法
1.7.3 加载动态图层
1.7.4 动态绘制数据
转载于:https://www.cnblogs.com/ywsoftware/archive/2013/06/05/3118814.html
利用动态图层实现数据的实时显示相关推荐
- 利用unison+inotify 实现数据双向实时同步
利用unison+inotify 实现数据双向实时同步 环境:Centos 6.5 64位 server1 :192.168.1.201 server2 :192.168.1.250 需求软件:oca ...
- opencv-python 实时获取摄像头数据并实时显示。
opencv-python 实时获取摄像头数据并实时显示. 目录 opencv-python 实时获取摄像头数据并实时显示. 代码: 一.关于 cv2.VideoCapture(source) 函数 ...
- 使用JS动态生成表格数据和分页显示
根据录入的内容动态显示到页面,不需要通过数据库保存,这样子减轻服务器压力.同时如果数据过多,支持分页显示,这些数据到保存时可以一起提交到后台. 效果如下: js代码(要引入JQuery): <! ...
- matlab gui 实时显示数据,GUI 实时显示数据
老师您好,请问您说的"加入一个逻辑变量 isX 并初始化为true. 每读入一个数据后,检查isX的值,若为true,则认为当前读入的是x,否则为y.然后在将isX的值取反即可.然后继续读取 ...
- 基于STM32的脉搏心率检测仪(OLED可以实时显示脉冲波形)
-设计完整,功能可全部实现,有完整报告文档说明.程序以及pcb文件- 可作为:课程设计,STM32实践学习,电子制作等 **禁止转载,以及用于其他商业用途.*** B站对应讲解心率传感器项目链接 设计 ...
- MATLAB利用串口接收数据,并实时显示图形
matlab读取串口资源总结: 一.matlab读取串口数据,并显示实时图形:点击这里打开 二.使用matlab进行串口调试的2中方法:点这里打开 三.matlab读取单片机串口数据并显示出来(m语言 ...
- 利用Handler通信来实时显示系统时间
关键技术: 本程序实现了在屏幕中实时显示系统的时间,其中用到了Handler.Timer.TimerTask.Message等关键技术. 思路分析: 我们都知道,在Android中程序不能在主线程中( ...
- android 串口一直打开_实例 | 使用Python串口实时显示数据并绘图
今天为大家分享一篇使用Python串口实时显示数据并绘图的例子,具有很好的参考价值,希望对大家有所帮助. 一.安装pyserial以及基本用法 使用pyserial进行串口传输,在cmd下输入命令pi ...
- python串口数据绘图_使用Python串口实时显示数据并绘图的例子
使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:\Anaconda3\Sc ...
- python中texttable库显示实时数据_用Python串口实时显示数据并绘图pyqtgraph
用Python串口实时显示数据并绘图 使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 &qu ...
最新文章
- python类和对象课件_简单解释Python的类和对象
- linux python版本_linux下更新Python版本并修改默认版本
- matlab矩阵中如何去掉重复的行;如何找到相同的行,并找到其位置
- hdu4763 KMP
- 【剑指offer】数字在排序数组中出现的次数
- An example of EXPORT / IMPORT usage - in office integration and odata metadata model cache
- [PAT乙级]1018 锤子剪刀布
- sql参数化查询避免注入漏洞的原因探析
- 整理一年中使用到的工具和类库,可能正有你需要的!
- 模电试题_数电试题 综合测试
- 迅雷禁止更新设置方法【禁止升级】【禁止更新】
- 用python实现弹跳球游戏_Python Tkinter弹跳球类游戏res
- PS调出春夏外景婚纱照
- (转)MSDN Library “已取消到该网页的导航”解决办法
- js赋值改变后,原数据也发生改变
- 深入解读云场景下的网络抖动
- mysql语句格式化日期时间成特定格式
- rsync 同步本地文件到远端
- 直播写代码,今晚8点见!
- 汉语编程的时代会到来吗?