OpenLayers工作原理

时间:2021-09-28 16:36:26

1、数据组织

OpenLayers通过同层(Layer)进行组织渲染,然后通过数据源设置具体的地图数据来源。因此,Layer与Source是密切相关的对应关系,缺一不可。Layer可看做渲染地图的层容器,具体的数据需要通过Source设置。

地图数据根据数据源(Source)可分为Image、Tile、Vector三大类型的数据源类,对应设置到地图图层(Layer)的Image、Tile、Vector三大类别的图层中。

2、数据解析

ol.format.Feature类用于读/写各种格式的数据,封装了多种格式的子类即各类数据解析器,包括XML、Text、JSON类型的各种格式数据解析器

3、数据渲染

先通过URL获取数据,然后用各种格式的解析器解析数据,再用所谓的渲染器在图层中进行渲染,最后结合相应的控件表现出来。渲染功能由渲染器(renderer相关类)实现,通过Map的renderer属性设置渲染类型,然后根据渲染类型(Canvas、DOM、WebGL)与同层类型(Image/Tile/Vector)匹配相应的渲染器将图层数据渲染显示出来。

4、地图表现

Map类是一个地图容器,用target属性与DIV关联。

5、事件机制

地图事件类(ol.MapEvent),包含moveend、postrender等

地图浏览器事件类(ol.MapBrowserEvent),包含singleclick、click、dbclick、pointermove、pointerdrag事件

对象事件类(ol.ObjectEvent),包含change、propertychange事件

选择控件事件类(ol.SelectEvent),包含select事件

绘制控件事件类(ol.interaction.DrawEvent),包含drawstart、drawend事件

修改控件事件类(ol.ModifyEvent),包含modifystart、modifyend事件

集合事件类(ol.CollectionEvent),包含add、remove事件