1. //创建cesium Viewer viewer = new Cesium.Viewer(‘cesiumContainer’,{ animation:false, //是否创建动画小器件,左下角仪表 baseLayerPicker:false, //是否显示图层选择器 fullscreenButton:false, //是否显示全屏按钮 geocoder:false, //是否显示geocoder小器件,右上角查询按钮 homeButton:false, //是否显示Home按钮 infoBox : false, //是否显示信息框 sceneModePicker:false, //是否显示3D/2D选择器 selectionIndicator : false , //是否显示选取指示器组件 timeline:false, //是否显示时间轴 navigationHelpButton:false, //是否显示右上角的帮助按钮 scene3DOnly : true, //如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
navigationInstructionsIn showRenderLoopErrors:false,
imageryProvider : new
Cesium.OpenStreetMapImageryProv
});
2. Var rainEntity=viewer.entities.add({
viewer.entities.getById("rain").show =
false;
viewer.entities.getById("rain").label.text=
"drp";
viewer.entities.removeAll();
viewer.zoomTo(rainEntity);
3. 问题所在:双击entity,会放大视图,entity居中显示,且鼠标左键失去移动功能,鼠标滚轮失去作用 解决问题: viewer.screenSpaceEventHandler.setInputAction(function(){},Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK );
4. var scene = viewer.scene; var ellipsoid = scene.globe.ellipsoid; var height=ellipsoid.cartesianToCartographic(viewer.camera.position).height;
5. var position = Cesium.Cartesian3.fromDegrees(lon, lat);
var clickPt
=Cesium.SceneTransforms.wgs84ToWindowCoordinates var screenX=clickPt.x; var screenY=clickPt.y;
6. var result = viewer.camera.pickEllipsoid(new Cesium.Cartesian2 ( viewer.canvas.clientWidth /2 , viewer.canvas.clientHeight / 2)); var curPosition = Cesium.Ellipsoid.WGS84.cartesianToCartographic(result); var lon = curPosition.longitude*180/Math.PI; var lat = curPosition.latitude*180/Math.PI;
7. var handler = new Cesium.ScreenSpaceEventHandler(canvas);
这个LEFT_CLICK可以换成MIDDLE_CLICK、MOUSE_MOVE等就会响应滚轮点击、鼠标移动等事件,见参考文档中的ScreenSpaceEventType(),注意不同的事件中,function中的click会有不同的属性,可console.log(click),找到所需
8. viewer.camera.moveStart.addEventListener(function(moveStartPosition){}); viewer.camera.moveEnd.addEventListener(function(moveEndPosition){}); 其实还有个 viewer.camera.changed.addEventListener(function(moveEndPosition){}),但我不会用,总是提示changed不存在,但是camera的参考文档中这个changed和moveStart和moveEnd都可以addEventListener
9. viewer.camera.setView({
|
|
来自: 菁清siso > 《cesium.js》