首页 / Cesium / 使用示例
要素拾取与属性查询
三维场景里的「点一下看信息」全靠拾取。示例把属性挂在实体上,点哪栋就显示哪栋的数据。
源码与运行效果
这个示例在做什么
点击任意一栋建筑,左下角浮层显示编号、类型、高度与体量。拾取由
scene.pick 完成,返回对象的 id 就是被点中的实体,
属性从 id.properties 里取。
3D Tiles 的拾取走同一套入口,但返回的是 Cesium3DTileFeature,
属性通过 feature.getProperty(name) 读取。两者差别只在属性读取方式,
拾取坐标、判断是否命中、清空选中的流程完全一致。
关键接口
| 接口 | 作用 |
|---|---|
scene.pick(windowPosition) | 屏幕坐标拾取,返回命中对象或 undefined |
Cesium3DTileFeature.getProperty(name) | 3D Tiles 里读要素属性 |
feature.color | 给选中要素单独上色,做高亮 |
ScreenSpaceEventHandler | 绑定 LEFT_CLICK 等事件 |
可以直接改的地方
| 位置 | 改什么 | 效果 |
|---|---|---|
properties | 增加字段 | 浮层多一行 |
LEFT_CLICK | 改成 MOUSE_MOVE | 悬停即显示 |
scene.pick | 换成 pickPosition | 取到地面坐标 |
palette | 换配色 | 建筑颜色 |
替代说明:官方示例从 ion 的 3D Tiles 数据集里拾取要素并读取批表属性。
这里用实体属性承载同一份信息流;换成 tileset 后把
picked.id.properties 换成 picked.getProperty 即可。