一、先看效果
二、代码实现
1. 先在html页面中实现两个右键菜单的样式。
2. 设置ceisum中的鼠标右键监听事件
//鼠标右键事件监听
function EventListener_MouseRightClick (handler) {
handler.setInputAction(function (evt) {
//设置监听方法
var scene = viewer.scene;
pick = scene.pick(evt.position);
// cartesian = scene.pickPosition(evt.position); // 获取鼠标位置
// cameraHeight = Math.ceil(viewer.camera.positionCartographic.height); // 获取相机高度
if (pick == undefined) {
console.log("空白处右键菜单");
document.getElementById("hamburger_example").style.display = ""; //显示div
//调用页面菜单
$(document).ready(function () {
$("body").gizmoMenu({
menu: "gizmoBurger",
});
});
} else {
console.log("实体处右键菜单,实体ID为:",pick.id.id);
document.getElementById("modelRightMenu").innerHTML = "XX" + (pick.id.id).substring(0, 6);
//显示模型菜单
document.getElementById("gizmo").style.display = ""; //显示div
//调用模型菜单
$(document).ready(function () {
// MODEL的菜单
$("body").gizmoMenu({
menu: "gizmoDropDown",
});
});
viewer.trackedEntity = undefined;
}
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
}
let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
EventListener_MouseRightClick(handler);