Cesium 拾取 API 完全总结
1 拾取坐标
- 仅拾取椭球体表面坐标
使用 Camera.prototype.pickEllipsoid 方法,接受一个必选的屏幕坐标,返回一个三维世界坐标 Cartesian3。
- 拾取带地形高度的地表坐标
使用 Globe.prototype.pick 方法。需要事先使用 Camera.prototype.getPickRay 创建射线。
接受一个必选的射线对象,一个必选的 Scene 对象,返回一个三维世界坐标 Cartesian3。
- 拾取三维物体的坐标
使用 Scene.prototype.pickPosition 方法。
拓展阅读
Scene.prototype.pickPositionSupported,只读字段,表示当前 Scene 是否支持拾取坐标
Scene.prototype.pickTranslucentDepth,Boolean 类型字段,使用它的前提是设置 Scene.prototype.useDepthPicking 为 true,这个 会增加性能消耗,来判断透明物体的深度
2 拾取三维物体
- 拾取 Entity 和 Primitive(包括 3D-Tiles)
使用 Scene.prototype.pick 方法,返回一个对象:
{primitive: Primitive | GroundPrimitive | Cesium3DTileContent | ...id?: Entity
}
若拾取到的是 Entity,那么返回的对象的 id 字段将为此 Entity,否则为 undefined.
还有一个 Scene.prototype.drillPick,穿透拾取的意思,与 pick 的区别就是能拾取多个点击点的三维物体。
- 拾取 DataSource 加载的数据
一样通过 Scene.prototype.pick 和 drillPick 方法拾取,接受二维屏幕坐标 Cartesian2。
*拾取图层
这个功能正在推进,届时可能在 1.84 版本的 Cesium 会加入拾取图层的功能。
API 或为 ImageryLayerCollection.prototype.pickImageryLayers,参数同 Globe.prototype.pick,也是射线求交的一种,返回一个 ImageryLayerCollection 或 undefined.
原理
在 Cesium 的场景组织中,有那么几个容器构成了三维世界:
Scene:包括了 Globe,除了 Globe 的元素外,还加上了 Primitive、Entity、DataSource 等三维物件
Globe:包括了 Ellipsoid,还包括了所有的影像图层、地形瓦片,可以算是椭球体上面的皮肤
Ellipsoid:一个数学公式所定义的旋转椭球体,代表一个纯粹的地球椭球形状
所以,针对不同的容器,就有不同的拾取。
拾取不准确的问题:开启深度检测
Scene.prototype.pickPosition、Scene.prototype.pick 和 Globe.prototype.pickRay 的准确性受深度缓存影响,所以,在深度检测不开启时,拾取的坐标会不准确。
建议开启。
viewer.scene.globe.depthTestAgainstTerrain = true
Cesium 拾取 API 完全总结相关推荐
- Cesium Primitive API 实践:绘制一个三角形
与调用官方各种参数化 API 不同,本例直接使用 Geometry 和 Appearance 类进行构造图形,灵活度较大. 文章目录 1 目的与结果 2 实现原理 坐标系统选择 3 踩坑点 3.1 G ...
- cesium 的 API 结构及Viewer的介绍
Cesium从入门到项目实战总目录: 点击 1.cesium 的 API 结构 以下是Cesium的所有API汇总: Core:核心模块,包含Cesium的基础构件.数据结构.算法等. Scene:场 ...
- Cesium 拾取坐标偏移问题
通常我们在使用Cesium的过程中,会有坐标拾取的操作,将拾取到的像素坐标和世界坐标进行一个相互的转换. 最近参与开发了一个大屏,分别有两个分辨率4800 * 1080以及9600 * 2160,为了 ...
- Cesium中文API 文档
这个是我们进行HCZJ Earth项目时纯人工翻译的 API文档 另:HCZJ Earth 介绍 这个可以作为Cesium插件使用,可以快速开发特定功能
- cesium入坑 -- 各种API调用与API本身使用的坑
cesium入坑2 – 各种API调用的坑 前言: cesium作为一个3D渲染的地图库,功能非常强大,但是它的官方文档和API的查找处理等实在是体验极差,使用久了对API的查找还行,开入手时每个AP ...
- cesium 知乎_Cesium 源码笔记[2] CesiumWidget模块的实例化过程 ver1.67
四叶小天使! 上承 CesiumWidget实际上和Viewer差不多.以下两句代码用于初始化,效果是差不多的. const widget = new Cesium.CesiumWidget('id选 ...
- Cesium基础使用介绍
既然给我发了参与方式,不参加似乎有点不给人面子,反正也没多少人看我的博客,那我就试试吧,也欢迎大家自己参与:2017年度全网原创IT博主评选活动投票:http://www.itbang.me/goVo ...
- cesium 直接加载 geotiff 影像图
前言 最近碰到了一个需求,需要通过 cesium 直接加载 geotiff 影像图. 咋一听,这个需求好像蛮奇怪,cesium 本身本来就支持加载 tile 影像图,也就是所谓的切片地图.原理其实就是 ...
- cesium绑定鼠标事件,及清除事件
1.绑定事件方法 说明: 方式一:方式一是每次都创建一个实例,可以多个共存且根据名字(变量比如:下面的handler)可以清除指定事件(推荐使用). 方式二:方式二是直接在viewer实例上添加,清 ...
最新文章
- AI一分钟 | Google因跟踪用户数据接受调查;iPhone XS真机图曝光
- 【机器学习入门到精通系列】应用机器学习的建议(方差和偏差)
- Javascript - Select操作大集合
- 判断远程图片是否存在的JavaScript代码
- Redis Lua脚本实现原子性操作
- printf函数与主函数问题
- oracle ora 08103,ORA-08103: 对象不再存在
- Python 作为小程序后端的三种方法
- 酒店管理系统源码,前台+后台
- zip 命令实现批量文件压缩
- 在IDEA中更改项目名(project)
- Log4j for C++ 实用指南
- cpu占用高 mongo_记一次 MongoDB 占用 CPU 过高问题的排查
- 【vue.js】+云存储(实现图片上传功能)
- 【刷题】BZOJ 2069 [POI2004]ZAW
- java代码质量 圈复杂度,代码圈复杂度(Cyclomatic Complexity,CC)和Oclint工具 介绍...
- PMP考试 变更管理专题
- 去掉python的花括号
- 曲靖师范计算机科学与技术,曲靖师范学院计算机科学与工程学院试讲表.doc
- 基于Java毕业设计校园外卖系统Web端源码+系统+mysql+lw文档+部署软件
热门文章
- qt 计算字符串宽度高度
- 无边的爱浸湿了我的心
- 最新版Adobe2023:After Effects 2023(Ae2023) win/mac版中文特别版
- 如何右键菜单添加命令提示符_在右键菜单顶部添加过滤器命令
- uni-app:uni-icons的使用及如何自定义图标
- Python画水平和垂直线
- Cocos2d-x 2.0 百例精讲:如何让一个精灵跟随触点移动
- 中国传媒大学计算机课程表,中国传媒大学新学院课程表.doc
- HTTPS证书转换成PEM格式
- Chrome浏览器访问站点浏览器提示不安全解决方案