本来跑起来就很吃力,兼容了8估计也跑不动,有什么意义呢,另外,webgl是IE11才有的,而cesium是以webgl为基础实现的,所以兼容ie8应该不现实吧
先把你这个经纬坐标转成w84世界坐标 var position = Cesium.Cartesian3.fromDegrees(经度,纬度, 高度); 然后把你这个矩阵的第12 13 14 个元素替换成生成坐标的x,y,z,然后把这个矩阵作为模型矩阵放上去
var model = scene.primitives.add(Cesium.Model.fromGltf({
url : 模型路径',
modelMatrix : modelMatrix(生成的新矩阵),
}));
比如hack的方式是设置css styele
<style type="text/css">
.ol-overlaycontainer-stopevent
{
display:none;
}
</style>
官方API-ScreenSpaceEventType:
http://cesiumcn.org/docs/ScreenSpaceEventType.html?classFilter=ScreenSpaceEventType
官方API-ScreenSpaceEventHandler
http://cesiumcn.org/docs/ScreenSpaceEventHandler.html?classFilter=ScreenSpaceEventHandler
Cesium中的鼠标事件可以通过:ScreenSpaceEventHandler来捕捉,查看官方文档可知,Handles user input events. Custom functions can be added to be executed on when the user enters input.基于屏幕空间,可以自定义用户的输入交互事件。
ScreenSpaceEventType目前支持:
LEFT_CLICK、LEFT_DOUBLE_CLICK、LEFT_DOWN、LEFT_UP、MIDDLE_CLICK、MIDDLE_DOWN、MIDDLE_UP、MOUSE_MOVE、PINCH_END、PINCH_MOVE、PINCH_START、RIGHT_CLICK、RIGHT_DOWN、RIGHT_UP、WHEEL
等事件可以绑定。
以鼠标滚轮放缩事件为例:
handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
// zoom control
handler.setInputAction(zoom, Cesium.ScreenSpaceEventType.WHEEL);
function zoom(movement) {
require(["Cesium"],function(Cesium){
TODO: your code
});
}