SuperMap iClient3D for Cesium 实现鼠标移动选中模型并显示模型对应字段

cesium的四种点击拾取方法 通过坐标位置,拾取实体(Entity),图元(Primitive),3DTiles对象,返回的是scene中指定位置最上层的对象。例如点击获取Entity的pick对象,通过pick.id可以拾取当前的entity对象。拾取后,可以用于改变对象的属性参数,如颜色,图片等。:只能获取一个对象,并且是最顶部的对象。如果拾取点没有对象,则会返回undefined。 阅读详情

作者:xkf

一、实现思路

将模型属性数据存储到前端,通过监听鼠标指针的屏幕坐标返回当前坐标选中的实体对象,并根据对象id在保存的模型属性中查询需要显示的固定字段,最后通过气泡显示到模型的顶部.

二、数据制作

1. 计算出模型中心点并保存到属性表中

通过Supermap iDesktop (下文简称iDesktop)中 属性表->编辑组->计算几何属性->计算中心点坐标 的功能得到对应模型数据的中心点的经度和纬度坐标,如下图:
在这里插入图片描述

2. 计算出模型顶部高程

可以通过iDesktop中 三维数据-> 模型->属性提取-> 提取顶部高程 功能获取模型的顶部高程值.如下图:
在这里插入图片描述

3. 模型数据切缓存

可以选择在iDesktop中选中数据集右键切缓存,或者保存场景后对场景切缓存。需要注意的是 属性存储类型 需要选择 ATTRIBUTE 才能在前端保存属性。
在这里插入图片描述

4. 发布三维服务.

将切好的缓存数据保存到工作空间后使用 supermap iserver 发布为三维服务.到此就完成了数据的制作。

三、代码编写

主要代码如下:

var handler
var promise = scene.open("http://IP:8090/iserver/services/3D-CBD/rest/realspace");
promise.then(function (layers) {
    layer = scene.layers.find("Building@CBD")
    layer.indexedDBSetting.isAttributesSave = true
})
var popup3 = new Popup({
    viewer: viewer,
    element: 'test3',
    pixelOffset: new Cesium.Cartesian2(-30, -50),
    scaleByDistance: new Cesium.NearFarScalar(1000, 1, 10000, 0.2),
    hideOnBehindGlobe: true,
});
let name = document.getElementById('name')
let ID = document.getElementById('ID')
handlerActive()
function handlerActive() {
    handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
    handler.setInputAction(function (e) {
        var pickedObject = viewer.scene.pick(e.endPosition);
        console.log("pickedObject", pickedObject)
        let position

        if (pickedObject.id !== undefined && pickedObject.primitive._name == "Building@CBD") {
            layer.getAttributesById(pickedObject.id).then(function (data) {
                name.innerHTML = data.MODELNAME
                ID.innerHTML = data.SmID
                position = new Cesium.Cartesian3.fromDegrees(data.LONGITUDE, data.LATITUDE, data.TopAltitude)
            })
            popup3.setPosition(position);
        } else {
            popup3.close()
        }
    }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
}

效果截图:
在这里插入图片描述

Cesium二次开发框架全景盘点:15个工具对比与选型指南 在三维GIS与数字孪生场景快速落地的今天,WebGL渲染引擎承担着海量空间数据的可视化任务,而如何基于底层引擎高效构建业务系统,成为开发者普遍面临的工程挑战。CesiumJS作为一款强大的三维地球渲染引擎,提供了扎实的3D Tiles加载、地形量算与相机控制能力,但在单体化、动态特效、业务联动等环节仍需大量二次开发。围绕这一需求,市面上涌现出多种增强SDK、前端封装与工具链,从超图iClient3D到Mars3D、DC-SDK,再到vue-cesium与Cesium for Unity,覆盖了快速演示、政企 阅读详情

相关推荐

三维WebGIS相机位置与天气实时汇报实现

三维WebGIS开发中,相机位置获取与实时信息联动是场景漫游、飞行巡检等业务的基础环节。底层基于Cesium等三维引擎时,相机位置在内存中以地心直角坐标表示,需通过椭球换算为经纬度与海拔高度,这是后续一切汇报功能的前提。为稳定捕获相机变化,可监听场景渲染事件或相机变化事件,并结合时间间隔控制采集频率。天气等外部数据的联动则需要独立的节流策略,例如距离与时间双重阈值,避免接口请求过载。结合SuperMap iClient3D项目实践,讲解从相机坐标换算、朝向角读取到天气数据绑定的完整实现,同时给出位置汇报的标

weixin_29202213的博客 279

Cesium鼠标交互

Cesium鼠标交互

Elets的博客 1665

Cesium开发:左键点击模型效果分析

Cesium的样例中,有一个3D Tiles Feature Picking,鼠标划过模型,会在模型上显示一个选中框,在模型旁边浮现一个名称标签,点击3dtiles中的模型,会高亮显示框,并且弹出模型的详细信息。 详细的网址:https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=3D Tiles Feature Picking.html&am...

地理信息技术杂谈 博客,欢迎技术交流 2565

cesium——加载3DTiles,模型的选中,高亮效果

这种切片和分层的方式使得数据可以根据需要按需加载,从而降低了网络传输和计算资源的需求。它的开放性和普及性使得很多GIS软件和服务已经支持3DTiles标准,从而为用户和开发人员提供了丰富的工具和资源。使用3DTiles,开发人员可以加载和呈现各种地理数据,如建筑物、地形、植被和其他点云数据等。3DTiles是一种用于组织和传输大规模地理数据的规范,旨在提供一种高效、可扩展的方式来加载和显示复杂的3D模型。总之,3DTiles为地理数据的可视化和交互提供了一种全新的方式。

等花开一起压花路 5083

Cesium 展示——实现鼠标移动到实体上动态高亮显示或动态展示 Label

在开发中,遇到这样一个需求:在绘制完实体后,要求鼠标移动到上边后有高亮的效果,看的清除一点,因此,经过尝试,做出了如下解决方案。在这里,我们以线为例,实现其动态高亮显示。

虎康的博客 1724

Cesium 展示—— 根据鼠标点击生成点击点的坐标信息(坐标点的转换)

在日常开发中 ,会遇到根据鼠标点击生成对应点的坐标信息的情况。

虎康的博客 1296

SuperMap iClient3D for cesium 实现鼠标移动选中模型并显示模型对应字段

supermap for cesium 实现鼠标移动选中模型并显示模型对应字段

小客服的博客 170

Cesium 地图显示鼠标经纬度和高度

基本版-显示鼠标经纬度和高度 html文件

SuperMap iClient3D for Cesium实现鼠标移动到模型上显示模型属性内容

生成缓存属性(Attribute)是指将数据源中的属性数据进行缓存,以加快对属性数据的访问速度。如果需要对属性数据进行查询、筛选或显示等操作,就可以直接从三维服务中获取数据,而无需发布数据服务,从而提高数据访问的效率和响应速度。首先在iDesktop中对模型生成缓存,其中属性存储类型选择Attribute。

m0_46880026的博客 1321

Nuvoton OpenTitan开源安全芯片技术解析与应用

硬件安全模块(HSM)作为可信计算基的核心组件,其设计透明度和可验证性正成为行业焦点。RISC-V架构凭借开源特性,为构建可审计的安全芯片提供了新范式。OpenTitan项目通过开放Verilog源码和形式化证明,实现了从物理不可克隆函数(PUF)到分层安全启动的全栈透明。该方案在lowRISC Voyager开发板上实测显示,安全启动时间小于200ms,性能损耗仅7%,显著优于传统黑盒方案。目前该技术已应用于Chromebook和数据中心,其40nm工艺版本更将功耗降至5μA待机水平,为物联网和边缘计算提

weixin_36303807的博客 398

5分钟搞定!用FunASR在本地快速部署达摩院Paraformer语音识别模型

本文提供了一份快速部署指南,教你如何在5分钟内利用FunASR工具包在本地电脑上启动达摩院Paraformer语音识别模型。Paraformer作为一款非自回归端到端模型,以其推理速度快、识别精度高的特点,结合FunASR的一键式模型加载和统一API,让开发者能轻松构建本地语音识别系统,极大降低了前沿AI技术的应用门槛。

q9w8e7r6t5的博客 605

cesium两种方式鼠标移入移出实体显示提示框

cesium两种方式鼠标移入移出实体显示提示框 第一种方式 采用cesium的label作为提示框 var labelEntity = viewer.entities.add({ label : { show : false, showBackground : true, font : '14px monospace', ho...

一见终秦的博客 1万+

如何使用Ray和PyTorch训练模型

用户编写训练函数 → 定义单机训练逻辑。通过扩缩容配置 → 指定需要多少资源(Worker 数量、CPU/GPU)。训练器整合训练函数和配置 → 自动将训练函数分发到多个 Worker 上并行执行。Worker 运行训练函数 → 在分布式环境中完成模型训练。通过这种模式,Ray Train 实现了对分布式训练的抽象,用户只需关注单机训练逻辑,无需手动管理分布式通信和资源分配。

m0_62464865的博客 1922

Cesium点击图元带出信息气泡弹窗

实现点击下图的图标,可弹出气泡弹窗。带出此图标的信息(例如:标题,视频链接等)2.创建监听点击事件,获取点击的图元的数据。2.创建监听点击事件,获取点击的图元的数据。cesium弹窗创建下一篇继续补充整理。1.在创建图元时,将数据传入。1.在创建图元时,将数据传入。3.创建弹窗,展示数据。3.创建弹窗,展示数据。Cesium创建图元并实现点击图元带出信息气泡弹窗_cesium气泡弹窗_m0_45305745的博客-优快云博客。在地图上加图标,并附带上信息,可看上篇。接这篇,气泡弹窗怎么带出来。

m0_45305745的博客 1700

Vue Print Designer——一款让打印模板的设计变简单的可视化打印设计器

Vue Print Designer——一款让打印模板的设计变简单的可视化打印设计器

bjzhang75的博客 685

【JTAG】1149.6协议详解

JTAG1149.6协议是1149.1协议中Boundary-Scan结构的扩展,1149.1对交流耦合、差分或两者兼有的情况并没有得到充分的处理。该协议支持新的I/O测试结构。需要时变(AC)信号的高级I/O引脚允许测试它们之间的连接,这包括所有差分信号引脚或单端信号引脚,通过设计支持交流耦合。..................

xuhe0206的博客 4574

cesium创建气泡弹窗

本人第一次接触cesium又刚毕业,自己也是摸着石头过河,虽然效果实现但是还有很多不足之处,简单说一下我自己的气泡弹窗思路。

qq_43124006的博客 1693

【二 Deepseek+Coze案例】【 2.2 Coze + Deepseek 实现小红书爆款笔记:打造专属Agent智能体】

摘要 本文介绍了如何利用Coze平台和Deepseek模型构建自动化Agent智能体,用于生成和优化小红书爆款笔记。文章首先分析了爆款笔记的核心特征,包括精准定位、吸引标题、实用内容、精美排版和热门标签。随后提出Agent智能体的功能需求,涵盖热点追踪、内容生成与优化、数据分析及自动发布等模块。在技术实现上,详细阐述了从环境配置、数据采集到内容生成与优化的全流程,并提供了Python代码示例,展示如何调用Coze函数获取热点数据及竞品笔记。该方案通过智能化的内容创作与运营策略,帮助用户高效打造高曝光的小红书

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 2279

Cesium基础-判断鼠标当前位置是地形还是模型

Cesium判断鼠标位置是地形还是模型。

lying_19的博客 2803

web渗透--9--识别web应用框架

1、概述 Web框架指纹识别是信息收集过程中的一个重要任务。获悉目标框架的类型必然为测试人员带来极大的优势,如果该框架在之前就被测试过。测试人员不仅可以获得未修补版本中存在的漏洞,还可以了解此框架中特有的错误配置以及已知的文件结构。从而使指纹识别过程显得格外重要。

武天旭的博客 5098

2024华为OD机试真题-矩阵匹配-C++-OD统一考试(C卷D卷)

​从一个 N * M(N ≤ M)的矩阵中选出 N 个数,任意两个数字不能在同一行或同一列,求选出来的 N 个数中第 K 大的数字的最小值是多少。输入描述输入矩阵要求:1 ≤ K ≤ N ≤ M ≤ 150

goldarmour的博客 279

Cesium中的鼠标事件

在Cesium中,有部分情况需要和场景进行交互,这就离不开鼠标的操作。Cesium为实现这一功能,分成了两个过程。类,例如实例化后的名称为handler;然后,为 handler 注册鼠标事件的监听;最后,在监听事件的回调方法中获取。鼠标的事件接口类型。在其官方文档里共有十五种类型,此处介绍三种常用的事件。方法获取对应的选中对象。因此简单介绍一下Cesium提供的鼠标监听接口。可以监听Cesium的父容器canvas的事件。设置要在输入事件上执行的函数。对监听事件属性进行设置。以鼠标左键点击事件为例。

DTCloud 2211

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Cesium创建图元并实现点击图元带出信息气泡弹窗

实现点击下图的图标,可弹出气泡弹窗。带出此图标的信息(例如:标题,视频链接等)2.创建监听点击事件,获取点击的图元的数据。2.创建监听点击事件,获取点击的图元的数据。cesium弹窗创建下一篇继续补充整理。将数据写入description属性中。1.在创建图元时,将数据传入。1.在创建图元时,将数据传入。3.创建弹窗,展示数据。3.创建弹窗,展示数据。屏幕空间事件处理程序。

m0_45305745的博客 2892

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

在CESIUM中增加自定义气泡或弹窗提示信息可随三维场景移动(思路解析加源码)【已实现】

在CESIUM中增加自定义气泡或弹窗提示信息可随三维场景移动(思路解析加源码)【已实现】

weixin_44995829的博客 3741

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Cesium加载模型显示

//Point Cloud by Prof. Peter Allen, Columbia University Robotics Lab. Scanning by Alejandro Troccoli and Matei Ciocarlie. var viewer = new Cesium.Viewer("cesiumContainer", { terrainProvider: Cesium.createWorldTerrain(), //地图有3D起伏的地形 }); //实例化一个模型 v...

海涛高软 1069

superMap cesium 实现地图

superMap cesium 实现地图。

qq_44162778的博客 653
上一篇: SuperMap iClient3D for Cesium动态修改水面高度实现水面涨跌效果
下一篇: SuperMap iPortal在 鲲鹏+麒麟环境下启动es报错解决方法
supermapsupport
博客等级 码龄11年 6628粉丝 1368原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值