一、介绍
现在互联网地图(百度地图,高德地图)都提供了很好的API使用,简单易懂,可以很快的通过文档构建自己的地图显示。但是有些时候项目和产品中需要离线的地图展示,本系列文章只讲述项目中比较常用的一些知识点,不会对每个组件进行详细的介绍。
OpenLayers 是一个开源的Web地图库,主要用于在Web段创建可交互式二维地图。本系列以6.0.1的版本进行讲解。
官网:OpenLayers
源码:GitHub
二、核心组件

- Map:一个入口,用于组织和管理各个组件对象,最后渲染成地图。
- View:用于控制地图中心点,显示范围,显示层级等
- Layers:主要用于生成不同种类的图层,进行叠加展示
- Controls:提供不同种类的交互控件(也可以自定义控件),用来实现用户通过控件和地图交互,或者用于提供一些信息。控件会固定在页面一个位置,不会跟随地图改变而改变位置。
- Interactions:用来定义用户和地图交互功能和交互方式。
- Sources:数据源,用来给Layers提供源数据,每一个Layers 都会有一个对应的Source用以提供数据。
三、快速开始
- npm引入 - 1 - npm install ol - 或者你可以选择CDN引入方式 - 1 
 2- <script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v6.0.1/build/ol.js"></script> 
 <link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v6.0.1/css/ol.css">
- 构建一个html - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 <html lang="en">
 <head>
 <meta charset="UTF-8">
 <title>OpenLayers</title>
 <style>
 #map {
 width: 1000px;
 height: 800px;
 }
 </style>
 </head>
 <body>
 <!-- 地图容器-->
 <div id="map"></div>
 <!-- 引入初始化地图的JS-->
 <script src="./js/demoMap.js"></script>
 </body>
 </html>
- 创建地图 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22- import 'ol/ol.css'; 
 import {Map, View} from 'ol';
 import TileLayer from 'ol/layer/Tile';
 import OSM from 'ol/source/OSM';
 const map = new Map({
 target: 'map', // 地图容器Id
 // 展示的图层
 layers: [
 new TileLayer({
 // 数据源
 source: new OSM()
 })
 ],
 // 视图
 view: new View({
 // 中心点
 center: [0, 0],
 // 初始层级
 zoom: 0
 })
 });
这样就可以形成一个简单的地图出来

四、总结
通过上面的 快速开始 可以看出,构建一个地图需要的必备属性:
- target :地图容器的DIV
- view :视图控制地图层级和中心点
- layers :地图图层
只要这三个部分组织完毕,一个基本的地图应用就可以使用了。