Openlayers的资料和技术优势
一、简介
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).