ol3简介
ol3从根本上进行了重新设计,相对于ol2,他符合现代浏览器的一些设计理念,使用了js新的特性,
initial版本的目的是支持原来ol2的大多数功能,支持公网上流行的缓存切片,支持常见的矢量数据格式。支持多种投影并且加入了一些新的功能如旋转和动画。同时,将来计划实现支持3D地图,使用WebGL显示大量矢量数据。
ol3使用了google的 ClosureTools ,并深度依赖它。通过ClosureTools操作DOM,兼容浏览器。同时使用Closure Compiler进行编译。
ol3通过ClosureTools进行编译的时候可以自定义指定某些模块不编译,用户可以自定义一些轻量级的build。只有被export的函数才会不会被变更名字,其他函数会被ClosureTools进行改名压缩。
ol3支持IE9及其以上版本,矢量数据目前只支持canvas。栅格图层支持canvas,DOM, WebGL三种渲染方式。
ol3是同时为桌面电脑和移动应用设计的。
顶级namespace是ol,次级名字空间小写字母开头,如ol.layer;简单对象也会用小写字母开头,如ol.animation
类型用大写字母开头的单词,如ol.layer.Layer; ol.layer.VectorLayer
源文件组织方式是,以名字空间分文件夹,并且有一个和名字空间一样的抽象类,该文件夹下的其他类均继承自该抽象类。私有函数用下划线开头。
Session 1
zoom是设置分辨率的一种简便方式。zoom level决定于maxZoom,zoomFactor,maxResolution(默认是将当前投影坐标系的可用范围放进一个256X256的图片中时的分辨率)。zoom level为0的时候,每个像素代表的maxResolution的值,后面的zoomlevel通过除以zoomFactor的值进行计算,直到zoom Level等于maxZoom.
例如,maxZoom=5, zoomFactor=2, maxResolution=0.00001
zoomLevel resolution
0 0.000001
1 0.0000005
2 0.00000025
3 0.000000125
4 0.0000000625
5 0.00000003125
数据源:
ol.source.Source,不管是矢量数据(GeoJSON or KML)还是公网上的缓存切片(OpenStreetMap or Bing),还是OGC的标准服务(WMS or WMTS),均通过ol.source.Source的子类进行设置。
图层:
图层是对ol.source的视觉表示,有三种基础的图层.
ol.layer.Tile:是预先渲染好的数据源,通常为缓存切片,它具有指定分辨率的预定义的zoomLevel
ol.layer.Image:一般为一张具有指定矩形范围的图片
ol.layer.Vector:矢量数据,在浏览器中渲染(目前版本只支持cavas)