在cesium中加入弹窗功能,实现点击模型出现弹窗

         实现效果如图,如果有更好的实现效果可以发评论区交流一下。

 一、添加弹窗和关闭按钮

<div id="popup" class="info">
    <p id="popupContent" style="font-size: 14px;">信息</p>
    <button id="popupClose" style="margin-top: 10px;">关闭</button>
</div>

 二、添加弹窗功能

 

viewer.screenSpaceEventHandler.setInputAction((click) => {
            const pickedObject = viewer.scene.pick(click.position);
            if (Cesium.defined(pickedObject) && pickedObject.id && pickedObject.id._id === '模型') {
                const pop = document.getElementById("popup");
                if (pop) {
                    const canvasRect = viewer.scene.canvas.getBoundingClientRect();
                    const top = click.position.y + canvasRe
您好!关于您的问题,我认为在Cesium实现点击获取在线3dtiles服务的模型属性弹窗,可以通过以下步骤来操作: 1. 创建一个Cesium Viewer 对象,加载需要请求的3D Tiles数据 2. 通过viewer的pick方法获取点击的对象,可以获得该对象的位置、属性等相关信息 3. 创建一个弹窗,将所获取的属性信息展示在弹窗中。 具体实现的代码可以参考如下: ```javascript var viewer = new Cesium.Viewer('cesiumContainer'); viewer.scene.globe.enableLighting = true; // 加载3D tiles数据 var tileset = new Cesium.Cesium3DTileset({ url: 'http://localhost:8003/tileset.json' }); viewer.scene.primitives.add(tileset); // 绑定鼠标点击事件 viewer.screenSpaceEventHandler.setInputAction(function onLeftClick(movement) { var pick = viewer.scene.pick(movement.position); if (pick && pick.primitive && pick.primitive._tileset) { // 获取属性信息 var properties = pick.getPropertyNames(); var values = pick.getPropertyValues(); var content = '<table class="cesium-infoBox-defaultTable"><tbody>'; for (var i = 0; i < properties.length; i++) { content += '<tr><td>' + properties[i] + '</td><td>' + values[i] + '</td></tr>'; } content += '</tbody></table>'; // 创建弹窗展示属性信息 var infoBox = viewer.cesiumWidget.infoBox; infoBox.viewModel.showInfo = true; //显示 infoBox.viewModel.title = "模型属性信息"; infoBox.viewModel.infoContent = content; } }, Cesium.ScreenSpaceEventType.LEFT_CLICK); ``` 希望我的答案可以帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值