OpenLayers3框架结构

OpenLayers3框架结构


发布日期: 2017-01-23 更新日期: 2017-01-23 编辑:xuzhiping 浏览次数: 6305

标签:

摘要: MetaCarta公司设计OpenLayers的目的,就是为了能够在客户端更好地展现和操作地图。OpenLayers将抽象事物具体化为类,其核心类是Map、Layer、Source、View,几乎所有的动作都围绕这几个核心类展开,以实现地图加载和相关操作。Op...

MetaCarta公司设计OpenLayers的目的,就是为了能够在客户端更好地展现和操作地图。OpenLayers将抽象事物具体化为类,其核心类是Map、Layer、Source、View,几乎所有的动作都围绕这几个核心类展开,以实现地图加载和相关操作。OpenLayers3的体系架构示意图如图所示。

由OpenLayers3的体系架构示意图可见:把整个地图看作一个容器(Map),核心为地图图层(Layer)、对应图层的数据源(Source)与矢量图层样式(Style)、地图表现相关的地图视图(View),除此之外容器中还有一些特别的层和控件(如地图交互操作控件),以及绑定在Map和Layer上的一系列待请求的事件。底层是OpenLayers的数据源,即Image、GML、KML、JSON、OGC服务资源等,均为source与format命名空间下的子类,这些数据经过Renderer渲染,显示在地图容器中的图层Layer上。其中,地图容器(Map)与图层(Layer)的渲染,提供了Canvas、DOM、WebGL三种渲染类型,分别由ol.renderer.Map与ol.renderer.Layer实现。

对比OpenLayers2,从OpenLayers3的体系架构中可看出版本3重构后与版本2的重要区别。从结构上看,主要区别如下。

(1)OpenLayers3将地图图层(Layer)与数据源(Source)分离,并将地图视图相关类(如投影、分辨率、中心点设置等)抽离为视图(View),地图数据的加载显示更为灵活。

(2)OpenLayers3将地图交互操作相关内容抽离,封装为各类交互操作控件(Interactions),如涉及地图交互的要素选择、绘图,以及图形要素编辑的操作、缩放、拖动、旋转等。

(3)OpenLayers3在地图容器中用叠加层(Overlays) 来承载和表现诸如地图标注(Marker、Popup)等HTML元素内容。

(4)OpenLayers3优化了空间几何结构类(Geometry),相比之前的版本其应用更为简便,易用性好。

(5)地图渲染机制不同,OpenLayers3将地图图层数据渲染、矢量要素渲染分离,地图渲染支持Canvas、DOM、WebGL渲染方式,矢量要素渲染支持Canvas、WebGL渲染方式。另外,新版本的地图图层数据渲染器(Renderer)将数据请求的相关处理封装在内部。

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org