arcgisengine利用动态图层实现数据的实时显示(监控)

arcgisengine利用动态图层实现数据的实时显示(监控)

ID:34721671

大小:90.86 KB

页数:12页

时间:2019-03-10

arcgisengine利用动态图层实现数据的实时显示(监控)_第1页
arcgisengine利用动态图层实现数据的实时显示(监控)_第2页
arcgisengine利用动态图层实现数据的实时显示(监控)_第3页
arcgisengine利用动态图层实现数据的实时显示(监控)_第4页
arcgisengine利用动态图层实现数据的实时显示(监控)_第5页
资源描述:

《arcgisengine利用动态图层实现数据的实时显示(监控)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、利用动态图层实现数据的实时显示2011-09-2010:47:29作者:刘宇浏览:188评论:1微博:http://weibo.com/arcgisengine1.1前言不刷新地图而能让数据实时显示,这在ArcGIS中已经不在是一个困扰我们的难题,在ArcGISEngine的开发过程中,每一次更新数据后都需要刷新才能,更改大量数据并不断的刷新,让用户在静静的等待,这不是很痛苦吗?为此ArcGIS提供了一个动态图层,专门用于解决这样问题。ArcGIS显示子系统管理着要素的显示和刷新,异步刷新显示和大量数据的渲染使得CPU的利用率增大,这可能导致显示延迟等问题.我们看一下ArcGIS显示子系统

2、的结构图,从这张图我们更能清楚的看到ArcGIS的显示原理:动态显示技术将渲染大量的数据从CPU端移动到了显卡上,利用了显卡的性能,这明显提高了显示性能.动态显示技术提供同步显示机制使得大量的动态数据以及高频率刷新的操作可以在瞬间完成,下面的图详细的揭示了动态显示技术的逻辑:1.2动态图层介绍动态图层是一个自定义图层,因此至少应该继承ILayer,IDynamiclayer和IGeoDataset这三个接口,好在Esri提供了一个BaseDynamicLayer这个抽象类,该接口已经继承了我们所说的相关接口,因此我们只需要在实现动态图层的时候继承该类就行.1.3和动态显示相关的接口在了解了

3、动态显示原理之后,我们看下ArcGISEngine为动态显示,提供了那些接口,以下是主要的相关接口:lIDynamicMap—该接口提供Enable属性用来控制动态显示是否可用,这个接口和我们地图是一一对应的.但我们要使用动态图层的时候,必须用该接口开启动态显示功能,也就是Enable属性设置为true。lIDynamicLayer—该接口和Ialyer以及IGeoDataset接口写作完成动态显示,也就是符号的绘制等,此接口提供了自定义图层动态显示内容的机制lIDynamicScreenDisplay—该接口控制是否启用动态显示lIDynamicGlyph—这个接口用来处理资源,这些资源

4、可以是线,点,文本,这些资源作为符号将被动显示。lIDynamicGlyphFactory—该接口用来管理动态符号,用此接口可以创建,删除动态符号,这些符号就是我们上面所提到的IDynamicGlyph的内容lIDynamicSymbolProperties—该接口用来管理显示符号的大小,比例尺,颜色等.lIDynamicDisplay—IDynamicDisplay提供了在地图上描绘几何图形的绘图机制,并且提供了访问动态符号工厂对象.在地图上绘制不同的几何图形,该接口和IDynamicSymbolProperties接口协同,使用IDynamicSymbolProperties来设置的动

5、态符号,然后使用IDynamicDisplay绘制形状。IDynamicDisplay接口其实是下面几何绘图回调函数的参数IDynamicLayer.DrawDynamicLayer;IDynamicMapEvents.BeforeDynamicDraw;IDynamicMapEvents.AfterDynamicDraw.1.4动态绘制模式动态图层有两种绘制模式,如下:·重写IDynamicLayer.DrawDynamicLayer方法·通过动态地图的事件:IDynamicMapEvents.BeforeDynamicDrawIDynamicMapEvents.AfterDynamic

6、Draw1.5绘图选择·使用动态显示API·使用OPenglAPI1.6绘制动态图层动态图层,有两种不同的绘图方式,因此有两个绘图阶段:立即阶段和编译阶段。在每一个阶段,每产生一组新的绘制命令,DrawDynamicLayer方法需要遍历图层的底层数据结构,并为每个项目生成相应的绘图命令,在编译阶段的绘图命令被编译成内部专用的一个清单列表。每一个绘图周期内,动态地图检查每个动态层的状态。如果一个动态层需要重新绘制(动态图层需要重新生成新的绘图命令),动态地图根据相应的绘图阶段调用动态层的DrawDynamicLayer方法,为动态层将产生一套新的绘图命令。如果有多于一个需要重新生成绘图命令

7、的动态图层,则整个动态显示需要重新绘制。动态图层是主动显示方式,也就是说他有一个固定的绘图周期,在每一个绘图周期内,都会检查动态图层的ditry属性,如果有一个动态图层是dity的,那么都会在所有的动态图层上绘制。动态图层主要有以下两个阶段:Immediate—不存储绘图命令.如果它报告其当前的阶段是脏,在这种情况下,绘制命令,将立即执行Compiled—在一个清单中存储绘图命令.动态显示将使用这个清单列表绘图,当dit

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。