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 完全总结相关推荐

  1. Cesium Primitive API 实践:绘制一个三角形

    与调用官方各种参数化 API 不同,本例直接使用 Geometry 和 Appearance 类进行构造图形,灵活度较大. 文章目录 1 目的与结果 2 实现原理 坐标系统选择 3 踩坑点 3.1 G ...

  2. cesium 的 API 结构及Viewer的介绍

    Cesium从入门到项目实战总目录: 点击 1.cesium 的 API 结构 以下是Cesium的所有API汇总: Core:核心模块,包含Cesium的基础构件.数据结构.算法等. Scene:场 ...

  3. Cesium 拾取坐标偏移问题

    通常我们在使用Cesium的过程中,会有坐标拾取的操作,将拾取到的像素坐标和世界坐标进行一个相互的转换. 最近参与开发了一个大屏,分别有两个分辨率4800 * 1080以及9600 * 2160,为了 ...

  4. Cesium中文API 文档

    这个是我们进行HCZJ Earth项目时纯人工翻译的 API文档 另:HCZJ Earth 介绍 这个可以作为Cesium插件使用,可以快速开发特定功能

  5. cesium入坑 -- 各种API调用与API本身使用的坑

    cesium入坑2 – 各种API调用的坑 前言: cesium作为一个3D渲染的地图库,功能非常强大,但是它的官方文档和API的查找处理等实在是体验极差,使用久了对API的查找还行,开入手时每个AP ...

  6. cesium 知乎_Cesium 源码笔记[2] CesiumWidget模块的实例化过程 ver1.67

    四叶小天使! 上承 CesiumWidget实际上和Viewer差不多.以下两句代码用于初始化,效果是差不多的. const widget = new Cesium.CesiumWidget('id选 ...

  7. Cesium基础使用介绍

    既然给我发了参与方式,不参加似乎有点不给人面子,反正也没多少人看我的博客,那我就试试吧,也欢迎大家自己参与:2017年度全网原创IT博主评选活动投票:http://www.itbang.me/goVo ...

  8. cesium 直接加载 geotiff 影像图

    前言 最近碰到了一个需求,需要通过 cesium 直接加载 geotiff 影像图. 咋一听,这个需求好像蛮奇怪,cesium 本身本来就支持加载 tile 影像图,也就是所谓的切片地图.原理其实就是 ...

  9. cesium绑定鼠标事件,及清除事件

    1.绑定事件方法  说明: 方式一:方式一是每次都创建一个实例,可以多个共存且根据名字(变量比如:下面的handler)可以清除指定事件(推荐使用). 方式二:方式二是直接在viewer实例上添加,清 ...

最新文章

  1. AI一分钟 | Google因跟踪用户数据接受调查;iPhone XS真机图曝光
  2. 【机器学习入门到精通系列】应用机器学习的建议(方差和偏差)
  3. Javascript - Select操作大集合
  4. 判断远程图片是否存在的JavaScript代码
  5. Redis Lua脚本实现原子性操作
  6. printf函数与主函数问题
  7. oracle ora 08103,ORA-08103: 对象不再存在
  8. Python 作为小程序后端的三种方法
  9. 酒店管理系统源码,前台+后台
  10. zip 命令实现批量文件压缩
  11. 在IDEA中更改项目名(project)
  12. Log4j for C++ 实用指南
  13. cpu占用高 mongo_记一次 MongoDB 占用 CPU 过高问题的排查
  14. 【vue.js】+云存储(实现图片上传功能)
  15. 【刷题】BZOJ 2069 [POI2004]ZAW
  16. java代码质量 圈复杂度,代码圈复杂度(Cyclomatic Complexity,CC)和Oclint工具 介绍...
  17. PMP考试 变更管理专题
  18. 去掉python的花括号
  19. 曲靖师范计算机科学与技术,曲靖师范学院计算机科学与工程学院试讲表.doc
  20. 基于Java毕业设计校园外卖系统Web端源码+系统+mysql+lw文档+部署软件

热门文章

  1. qt 计算字符串宽度高度
  2. 无边的爱浸湿了我的心
  3. 最新版Adobe2023:After Effects 2023(Ae2023) win/mac版中文特别版
  4. 如何右键菜单添加命令提示符_在右键菜单顶部添加过滤器命令
  5. uni-app:uni-icons的使用及如何自定义图标
  6. Python画水平和垂直线
  7. Cocos2d-x 2.0 百例精讲:如何让一个精灵跟随触点移动
  8. 中国传媒大学计算机课程表,中国传媒大学新学院课程表.doc
  9. HTTPS证书转换成PEM格式
  10. Chrome浏览器访问站点浏览器提示不安全解决方案