ol-cesium
Version:
OpenLayers Cesium integration library
49 lines (42 loc) • 1.62 kB
JavaScript
/**
* @module examples.exports
*/
const exports = {};
import OLCesium from 'olcs/OLCesium.js';
import {transform} from 'ol/proj.js';
import olView from 'ol/View.js';
import olSourceOSM from 'ol/source/OSM.js';
import olLayerTile from 'ol/layer/Tile.js';
import olMap from 'ol/Map.js';
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0MzAyNzUyYi0zY2QxLTQxZDItODRkOS1hNTA3MDU3ZTBiMDUiLCJpZCI6MjU0MSwiaWF0IjoxNTMzNjI1MTYwfQ.oHn1SUWJa12esu7XUUtEoc1BbEbuZpRocLetw6M6_AA';
const ol2d = new olMap({
layers: [
new olLayerTile({
source: new olSourceOSM()
})
],
target: 'map',
view: new olView({
center: transform([25, 20], 'EPSG:4326', 'EPSG:3857'),
zoom: 3
})
});
const ol3d = new OLCesium({map: ol2d});
const scene = ol3d.getCesiumScene();
scene.terrainProvider = Cesium.createWorldTerrain();
ol3d.setEnabled(true);
const camera = ol3d.getCamera();
const infoDiv = document.getElementById('infoDiv');
const printInfo = function() {
infoDiv.innerHTML = `Center: ${camera.getCenter()}<br />` +
`Distance: ${camera.getDistance()}<br />` +
`Heading: ${camera.getHeading()}<br />` +
`Tilt: ${camera.getTilt()}<br />` +
`<i>Position:</i> ${camera.getPosition()}<br />` +
`<i>Altitude:</i> ${camera.getAltitude()}<br />`;
};
setInterval(printInfo, 100);
document.getElementById('enable').addEventListener('click', () => ol3d.setEnabled(!ol3d.getEnabled()));
window['camera'] = camera;
window['olProjTransform'] = transform;
export default exports;