利用动态图层实现数据的实时显示 本帖最后由 sishui198 于 2011-8-25 09:04 编辑 前言 不刷新地图而能让数据实时显示,这在ArcGIS中已经不在是一个困扰我们的难题,在ArcGIS Engine的开发过程中,每一次更新数据后都需要刷新才能,更改大量数据并不断的刷新,让用户在静静的等待,这不是很痛苦吗?为此ArcGIS提供了一个动态图层,专门用于解决这样问题。 ArcGIS 显示子系统管理着要素的显示和刷新,异步刷新显示和大量数据的渲染使得 CPU的利用率增大,这可能导致显示延迟等问题.我们看一下 ArcGIS 显示子系统的结构图,从这张图我们更能清楚的看到 ArcGIS的显示原理: 动态显示技术将渲染大量的数据从 CPU端移动到了显卡上,利用了显卡的性能,这明显提高了显示性能.动态显示技术提供同步显示机制使得大量的动态数据以及高频率刷新的操作可以在瞬间完成,下面的图详细的揭示了动态显示技术的逻辑: 动态图层介绍 动态图层是一个自定义图层,因此至少应该继承ILayer,IDynamiclayer和IGeoDataset这三个接口,好在Esri提供了一个BaseDynamicLayer这个抽象类,该接口已经继承了我们所说的相关接口,因此我们只需要在实现动态图层的时候继承该类就行. 和动态显示相关的接口 在了解了动态显示原理之后,我们看下ArcGIS Engine为动态显示,提供了那些接口,以下是主要的相关接口 l IDynamicMap—该接口提供Enable属性用来控制动态显示是否可用,这个接口和我们地图是一一对应的.但我们要使用动态图层的时候,必须用该接口开启动态显示功能,也就是Enable属性设置为true。 l IDynamicLayer—该接口和Ialyer以及 IGeoDataset接口写作完成动态显示,也就是符号的绘制等,此接口提供了自定义图层动态显示内容的机制 l IDynamicScreenDisplay—该接口控制是否启用动态显示 l IDynamicGlyph—这个接口用来处理资源,这些资源可以是线,点,文本,这些资源作为符号将被动显示。 l IDynamicGlyphFactory—该接口用来管理动态符号,用此接口可以创建,删除动态符号,这些符号就是我们上面所提到的IDynamicGlyph的内容 l IDynamicSymbolProperties—该接口用来管理显示符号的大小,比例尺,颜色等. l IDynamicDisplay— IDynamicDisplay提供了在地图上描绘几何图形的绘图机制,并且提供了访问动态符号工厂对象.在地图上绘制不同的几何图形,该接口和IDynamicSymbolProperties接口协同,使用IDynamicSymbolProperties来设置的动态符号,然后使用IDynamicD...