// var viewshedarr = []
|
// function onViewshed(options)
|
// {
|
// // 分析参数
|
// // var viewModel = { verticalAngle: 90, horizontalAngle: 120, distance: 10 };
|
// // console.log(options);
|
// // 添加可视域
|
// var viewshed = new Cesium.ViewShed3D(viewer, {
|
// horizontalAngle: Number(options.horizontalAngle),
|
// verticalAngle: Number(options.verticalAngle),
|
// distance: Number(options.distance),
|
// frustum:true,
|
// calback: function () {
|
// options.distance = viewshed.distance
|
// }
|
// });
|
// viewshedarr.push(viewshed);
|
// }
|
// function clearViewshed(){
|
// for(let i in viewshedarr){
|
// viewshedarr[i]._handler = viewshedarr[i]._handler&&viewshedarr[i]._handler.destroy();
|
// viewshedarr[i].removeRadar();
|
// viewer.scene.primitives.remove(viewshedarr[i]);
|
// }
|
// viewshedarr.length = 0;
|
// }
|
let handler;
|
var startPosition;
|
var endPosition;
|
function onViewshed(options)
|
{
|
ViewShed.clear();
|
let i = 0
|
handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)
|
handler.setInputAction(movement =>
|
{
|
i++
|
if(i === 1)
|
{
|
startPosition = viewer.scene.pickPosition(movement.position) //鼠标点击一次获取开始坐标
|
if(!startPosition) return
|
// var viewShed = new ViewShed(viewer,{
|
// viewPosition: startPosition,
|
// viewPositionEnd: startPosition,
|
// horizontalViewAngle: options.horizontalViewAngle,
|
// verticalViewAngle: options.verticalViewAngle
|
// })
|
// var viewShed = new Cesium.ViewShed();
|
var op = {
|
viewPosition: startPosition,
|
viewPositionEnd: startPosition,
|
horizontalViewAngle: options.horizontalAngle,
|
verticalViewAngle: options.verticalAngle
|
};
|
|
ViewShed.create(viewer,op);
|
handler.setInputAction(movement => //鼠标移动的事件
|
{
|
endPosition = viewer.scene.pickPosition(movement.endPosition)
|
if(!endPosition) return
|
ViewShed.updatePosition(endPosition)
|
if(!ViewShed.sketch) {
|
ViewShed.drawSketch()
|
}
|
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE)
|
}
|
if(i === 2) //鼠标点击两次获取结束坐标
|
{
|
i = 0
|
endPosition = viewer.scene.pickPosition(movement.position)
|
ViewShed.updatePosition(endPosition)
|
ViewShed.update()
|
handler = handler && handler.destroy() //销毁鼠标事件
|
}
|
}, Cesium.ScreenSpaceEventType.LEFT_CLICK)
|
}
|
|
function clearViewshed(){
|
ViewShed.clear();
|
}
|