下载了Openlayers
的源码,源码的版本是v6.2.1
。粗略的看了下,结构清晰,代码简洁,是一个值得深入分析的开源框架,从中可以学到代码架构、设计模式、图层渲染,canvas,webgl,自定义事件、工具类等等,这些知识都是值得去好好研究的。下面就从类结构开始分析。主要是了解相关类的继承关系。
Map
map是最核心的一个类,首先从map
来开始。具体的类结构如下图所示:

View
View是map
上的一个核心组件,用于展现地图,包括地图中心点,范围,缩放级别等。

Layer
Layer用于管理地图的图层,包括矢量图层、切片图层等。

Geometry
Geometry包括了地图中用到的所有几何体。

Source
Source包括了所有的地图数据来源。

ImageStyle
ImageStyle用于设置图标样式

Control
Control包含了所有的控件。

Interaction
Interaction包含了所有的交互事件。

Event
Event用于管理地图中所有用到的事件。

Format
Format包含了所有的数据格式。

以上只是整理了一些继承关系比较复杂的类,还有一些关系不是很复杂的就不一一绘制了,等到解析源码的时候再说明相关的继承关系。
个人博客
网友评论