一、简介

openlayers使在任何网页中构建动态地图变得很容易。它可以显示地图分幅、矢量数据和加载从任何来源的标记。openlayers的开发是为了进一步利用各种地理信息。它是完全免费的、开源的javascript,是在bsd许可证(也称为freebsd)下发布的。

二、资源

openlayers 官网:https://openlayers.org/

openlayers 示例:https://openlayers.org/en/latest/examples/

openlayers 类参:https://openlayers.org/en/latest/apidoc/

openlayers 源码:https://github.com/openlayers/openlayers

openlayers 下载:https://openlayers.org/download/

三、示例代码

openlayer已经开始使用es6的写法了,如果继续使用引入js来加载openlayers写法会有点区别。

ES6

import ‘ol/ol.css’;

import Map from ‘ol/Map’;

import OSM from ‘ol/source/OSM’;

import TileLayer from ‘ol/layer/Tile’;

import View from ‘ol/View’; var map = new Map({

layers: [

new TileLayer({

source: new OSM(),

}) ],

target: ‘map’,

view: new View({

center: [0, 0],

zoom: 2,

}),

});

ES5

var map = new ol.Map({

target: ‘map’,

layers: [

new ol.layer.Tile({

source: new ol.source.OSM()

})

],

view: new ol.View({

center: ol.proj.fromLonLat([37.41, 8.82]),

zoom: 4

})

});

四、优势劣势

    Openlayer的定位在于web端的GIS开发,不同于leaflet定位与移动设备。Openlayer是很成熟的一个WebGIS的开发库,能够完成几乎整个项目的GIS功能,能够满足独立完成大中型的项目建设需要,与ArcGIS JavaScript API相当,与GeoServer、QGIS/uDig、PostGIS结合形成了完善且成熟的开源WebGIS解决方案。

Openlayers 优势:

1、功能丰富,开源免费;

2、支持几乎所有的二维GIS数据;

3、使用canvas作为地图引擎,结合WebGL可以提高渲染能力

4、支持前端重投影和多坐标系(支持Proj4)

5、生态环境较好,插件相对较多,社区活跃

6、使用ES6,面向对象的方式,能够按需导入,方便管理

Openlayers劣势:

1、空间分析的支持能力较弱,只提供前端显示,分析功能需要后台或其他软件支持

2、在Canvas上绘制图形,但不支持三维/俯视视角

3、自己构建扩展功能的门槛高

4、场景切换不支持动画切换

5、功能复杂,且构建参数嵌套层级较多,学习成本较高

五、浏览器支持

OpenLayers运行在所有支持HTML5和ECMAScript5的现代浏览器上。这包括Chrome、Firefox、Safari和Edge。

对于较旧的浏览器和平台(Internet Explorer、Android 4.x、iOS v12及更高版本、Safari v12及更高版本),以下浏览器功能可能需要使用polyfills:

  • requestAnimationFrame: Available from polyfill.io.
  • element.prototype.classList (add/remove): Available from polyfill.io.
  • URL API: Available from polyfill.io.
  • Pointer events: Use elm-pep (lightweight) or @openlayers/pepjs (for really, really old browsers).

发表评论

邮箱地址不会被公开。 必填项已用*标注