1 基本概念
1.1 Map
OpenLayers的核心组件是Map
(ol/Map
),它会被呈现到目标容器中(例如,包含地图的网页上的div
元素)。所有的map属性都可以在构造时配置,或者使用setter方法,例如setTarget()。
1.2 View
View
(ol/View
)负责地图的中心、缩放级别和投影等。View
是有投影的,投影决定了地图的坐标系统和地图单位。若没有指定,默认投影为Spherical Mercator
(EPSG:3857
),地图单位为米
。
缩放选项可以指定地图分辨率。可用的缩放级别是由maxZoom
(默认值:28)、zoomFactor
(默认值:2)和maxResolution
(默认值的计算方式是投影的有效性范围fit【原文的fit的意思应该是缩放至像素块大小以填充像素块】256x256像素块)3个因素决定的。从变焦级别0开始,分辨率为每像素maxResolution
单位,后续的变焦级别通过将前一个变焦级别的分辨率
除以zoomFactor
计算,直到达到变焦级别maxZoom
。
1.3 Source
OpenLayers使用ol/source/Source
子类来获取一个图层的远程数据。OpenStreetMap或Bing等免费和商业地图瓦片服务、WMS或WMTS等OGC源以及GeoJSON或KML等格式的矢量数据都可以使用。
1.4 Layer
Layer是数据的可视化表示,OpenLayers有4种基本类型的图层:
ol/layer/Tile
- 由特定分辨率的缩放级别组织的瓦片(原文为tiled images in grids
)ol/layer/Image
- 任意范围和分辨率的地图影像ol/layer/Vector
- 矢量数据ol/layer/VectorTile
- 矢量瓦片(原文为vector tiles
)
可以结合下面的例子体会一下上面的基本概念:
import Map from 'ol/Map'; //引入Map
import View from 'ol/View'; //引入View
import OSM from 'ol/source/OSM';
import TileLayer from 'ol/layer/Tile';
new Map({
layers: [
new TileLayer({source: new OSM()})
],
view: new View({
center: [0, 0],
zoom: 2
}),
target: 'map'
});
2 模块和命名约定
-
OpenLayers的模块是以骆驼命名法(Camelcase)命名的:
import Map from 'ol/Map'; import View from 'ol/View';
-
按父类分组的类层次结构在包的子文件夹中提供:
import {Map, View} from 'ol'; import {Tile, Vector} from 'ol/layer';
-
除了这些重新导出的类,小写名称的模块还可以导出常量或函数:
import {getUid} from 'ol'; import {fromLonLat} from 'ol/proj';
原文地址:
- https://openlayers.org/en/latest/doc/tutorials/concepts.html
- https://openlayers.org/en/latest/doc/tutorials/background.html