回顾上讲,ol以初始属性定义、对象继承等方法的定义实现开始。因此,在阅读后续源码的之前,需要对ol中所涉及到的对象有一个整体上的把握。
1、从ol.Object开始,向上、向下追溯,则构成了如下图的网络图
其中,
- Map(父类PluggableMap)、View、Layer、Overlay、Source、Geometry、Feature、Control等继承于Object
- 图层渲染主要有webgl和canvas两种渲染方式
2、整体上把握ol.Object的子类
3、数据与图层的的关系
数据与图层一一对应的关系
ol.layer.Layer | ol.source.Source |
---|---|
ol.layer.Tile | ol.source.Tile |
ol.layer.Image | ol.source.Image |
ol.layer.Vector | ol.source.Vector |
ol.source.Tile的子类ol.source.UrlTile(通过url地址获取瓦片)的子类有:
4、Control控件包含放大、鹰眼、鼠标位置、滚动条、比例尺、缩放到指定范围、全屏、属性、旋转等控件
5、Geometry几何体包含简单几何体。几何体集合。
(扩展Simple Feature SQL(OGC标准之一)和Geojson数据类型)
6、Interaction交互方式,支持双击、鼠标滚轮、键盘、选择、拖拽等事件
7、除了这些对象外,还有其他辅助的对象,如样式ol.style、数据格式ol.format、颜色ol.color、坐标系ol.proj、范围ol.extent、格网ol.tilegrid等
上图展示所用工具Protege(下载链接)中的OWLviz(需下载GraphViz,地址为https://graphviz.gitlab.io/_pages/Download/Download_windows.html)