JavaScript
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target: 'map2d',
view: new ol.View({
center: [0, 0],
zoom: 2.5
})
});
map.getView().setCenter(ol.proj.transform([-20, 75], 'EPSG:4326', 'EPSG:3857'));
var geometry = new ol.geom.MultiPolygon([
[ [ [-30, 70], [ 0, 70], [ 0, 69], [-30, 69], [-30, 70] ] ],
[ [ [-40, 71], [ 10, 71], [ 10, 70], [-40, 70], [-40, 71] ] ],
[ [ [-50, 72], [ 20, 72], [ 20, 71], [-50, 71], [-50, 72] ] ],
[ [ [-60, 73], [ 30, 73], [ 30, 72], [-60, 72], [-60, 73] ] ],
[ [ [-70, 74], [ 40, 74], [ 40, 73], [-70, 73], [-70, 74] ] ],
]);
geometry.transform('EPSG:4326', 'EPSG:3857');
var vectorLayer = new ol.layer.Vector({
map: this.map,
source: new ol.source.Vector({
features: [new ol.Feature({
geometry: geometry
})]
}),
style: new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(127, 64, 127, 0.4)'
})
})
});
var altitudeMode = 'clampToGround';
vectorLayer.set('altitudeMode', altitudeMode);
map.addLayer(vectorLayer);
var ol3d = new olcs.OLCesium({map: map, target: 'map3d'});
ol3d.setEnabled(true);
var scene = ol3d.getCesiumScene();
scene.globe.depthTestAgainstTerrain = true;