openlayers3.14源码学习(1)

时间:2022-12-23 00:16:40

参考文章:

 1.js库解析之google closure                         http://www.kuqin.com/webpagedesign/20100309/81059.html

  openlayers3整体的代码架构,实现方式以及风格与之前的ol2有很大的不同。可以说是一次完全新颖的升级。许多的类都采用的新的实现方式,代码的构造也与之前完全不同。很有重新学习的必要。

首先我们进入ol官网,下载源码之后加入到自己的工程中。可以看出来,代码还是按照不同的功能模块划分为不同的文件夹来存放的。

openlayers3.14源码学习(1)openlayers3.14源码学习(1)

apidoc中存放的是api文档信息,build中存放着编译后的几个版本,debug与release版的文件。closure-linrary中存放着ol3引入的google closure库。ol3对google closure库有很大的依赖关系,类的继承,模块引入等都是通过goog来实现的。examples中按照老惯例,存放的还是示例,openlayers的例子一直做的很好,里面有很多有意思的功能。接下来就是重头戏ol文件夹了。如上图所示,ol文件夹中根据不同的功能,存放着不同的文件。

首先找到ol.js,这应该是整个库最基本的一个js包。这个文件主要给我们传达了几个信息。

1.创建命名空间。整个ol3均是采用goog.provide()这种方法来创建命名空间的。

同样的,不同类的引入也采用google的goog.require(namespace)的方法

goog.provide('ol');
2.ol3的继承方式也是完全来自google closure,而google closure中的继承,封装方式在文章开头的参考文档中有做比较直观的说明。
ol.inherits = goog.inherits;
3.实现了一个空的方法,ol.nullFunction


下篇主要分析ol.Map文件,记录下,省得自己忘记。