Cesium 坐标拾取Pick(1)

一、简介

        在Cesium中坐标的拾取非常重要,比如在标绘、测量等功能中需要获取地球表面、地形、三维模型、实体元素等物体表面的经纬度和高程,这样绘制的图形才能准确,拿到的坐标才可以使用。

        与拾取相关的API比较多,不同的API适用的场景不同。比较常用的有scene.pickPosition、scene.pickPositionSupported、scene.pickTranslucentDepth、scene.pick、scene.drillPick、scene.camera.pickEllipsoid、scene.camera.getPickRay、scene.globe.pick等。另外还有一些私有类或者方法有时候也会用到,包括scene.picking、scene.pickFromRay、scene.drillPickFromRay等。

        下面根据我自己在产品封装和项目中实际经验先大致说一下。【不涉及原理细节,拾取原理请等待第2篇文章】

1) scene.pick [拾取到实体对象]

        该API签名为pick(windowPosition, width, height) → Object

        返回一个具有“primitive”属性的对象,该对象包含特定窗口坐标处场景中的第一个(顶部)基元,如果该位置没有任何内容,则返回未定义的对象。可以根据基元的类型潜在地设置其他属性,并且可以用于进一步识别拾取的对象。

        拾取3dtiles后,拾取将返回Cesium3DTileFeature对象。

2)scene.drillPick [拾取到实体对象]

        该API签名为drillPick(windowPosition, limit, width, height) → Array.<*>

        穿透拾取到多个对象。

3)scene.globe.pick[拾取到坐标]

        该API签名为pick(ray, scene, result) → Cartesian3|undefined

        返回射线和地球Globe交点的坐标,Globe包括地形图层、影像图层等,因此拾取到与地形交点的坐标。

4)scene.pickPosition[拾取到坐标]

        该API签名为pickPosition(windowPosition, result) → Cartesian3

        返回从深度缓冲区和窗口位置重建的笛卡尔位置。

5)scene.camera.pickEllipsoid[拾取到坐标]

        该API签名为pickEllipsoid(windowPosition, ellipsoid, result) → Cartesian3|undefined

        拾取椭球体表面的坐标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十年来梦中困

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值