ol-cesium 暴露 Cesium viewer 对象以及二三维切换、viewer 添加点功能示例
二三维一体化的概念一直都比较火热,虽然大多数都是狭义的概念,但是很多需求方也想要这样的功能。
Openlayers 官方出了一个二三维一体化的工具:ol-cesium。
基本能满足大多数项目的基础需求。
在使用过程中,发现工具在初始化之后,可以获取 Openlayers 地图对象、Cesium camera 对象、Cesium scene 对象等。
但是拿不到 Cesium viewer 对象,使用起来不太习惯,于是经过修改源码,拿到 viewer 对象。
本文包括核心代码、完整代码、在线示例三部分。
核心代码
let viewer,thisObject = this;
if (targetElement) {
if (typeof targetElement === 'string') {
targetElement = document.getElementById(targetElement);
//使用原始cesium方式初始化
viewer = new Cesium.Viewer(targetElement, {
infoBox: thisObject.infoBox, //Disable InfoBox widget
selectionIndicator: thisObject.selectionIndicator, //Disable selection indicator
shouldAnimate: thisObject.shouldAnimate, // Enable animations
//需要进行可视化的数据源的集合
animation: false, //是否显示动画控件
homeButton: false, //是否显示Home按钮
fullscreenButton: false, //是否显示全屏按钮
baseLayerPicker: