你这个需求,官方是提供样例的。
https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=HeadingPitchRoll.html&label=All
我就选了一个顶点
//鼠标点击监听,获取屏幕坐标-弧度制-经纬度
handler.setInputAction(function(click){
var screenX=click.position.x;
var screenY=click.position.y;
// console.log("像素:"+screenX+":"+ screenY)
var cartesianPosition = viewer.camera.pickEllipsoid (new Cesium. Cartesian2 ( screenX,screenY));
var cartographicPosition = Cesium.Ellipsoid.WGS84. cartesianToCartographic (cartesianPosition); //结果是弧度制
var longitudeString = Cesium.Math.toDegrees(cartographicPosition.longitude);
var latitudeString = Cesium.Math.toDegrees(cartographicPosition.latitude);
// console.log(longitudeString)
// console.log(latitudeString);
},Cesium.ScreenSpaceEventType.LEFT_CLICK);
post processing里计算会有精度问题,不太明显就是,做成动态水效果,估计就看不出来了
就是重写groundprimitive 这个方法应该是没这些问题的
postprocessing里加上select就可以实现区域的,这些都是无源的淹没分析 计算淹没面积,体积的,就自己琢磨吧,不透露了