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: