关于可视域分析的实现

本文分享了在Cesium 1.61版本中实现可视域分析的过程与方法,包括利用高程判别和pick取交两种思路。通过具体代码示例,详细介绍了如何构建视角位置、目标点,并进行视域线的求交与分析,最终形成可视域结果。

本人现在用的Cesium版本是1.61。

功能优化后的完整demo: Cesium功能集 之 034-可视域分析(纯前端)完整版

关于视域分析,Cesium本身是不提供直接接口实现的,也许是我接触的还不够全面,反正自己是没找到现成的东西来调用,没办法只能自己一步一个坑的去踩。前后差不多一天多的时间实现了一个大致的效果,基本可以满足现阶段项目上的需要。效果远达不到那些付费产品视域分析的效果,性能上也会有些许的影响(范围足够大的情况下,性能下降还是比较明显的),现阶段能力也就这样,希望后续能够再完善吧。上图:

思路历程:网上能够搜到的多数都是透视分析的例子,某种情境下,足够多的透视分析结果整合到一起也能看作是一个简单的视域分析。也是顺着这个思路,自己设计了两个思路来实现视域分析:

①利用高程判别:视角初始位置和视域目标点之间组成的一条直线,我们暂且称之为当前视角下的“视域线”,对该直线进行空间插值,获得直线上一系列的空间插值点。对于获取到的每个插值点P(x,y,z)通过getHeight()方法来获取当前场景下(x,y)点的地表高程h,对比z与h的高程关系。若z<h,则证明,该插值点位于地表下,可以归属于不可视域点;反之,若z>h,则归属于可视域点。这样就可以获取到视域线在当前插值精度下的可视域情况。

②pick取交

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

总要学点什么

相信每一个技术人员的惺惺相惜

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

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

打赏作者

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

抵扣说明:

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

余额充值