Cesium空间分析-通视分析

本文介绍了如何实现三维空间中的通视分析功能。通过将观察点与目标点之间的线段细分,比较每个子段端点的实际高程与理论高程,判断是否存在阻碍点。关键技术包括线段分割、坐标转换、距离计算以及屏幕坐标与真实世界坐标的映射。代码示例展示了Cesium库在该功能实现中的应用。

进入正题,前段时间做了一个通视分析的功能。

功能很简单:给定“观察点”与“目标点”,判断两点之间是否有“阻碍点”,并能够计算出阻碍点。效果如下图:

实现思路:仍然是“分而治之”,将观察点与被观察点连成的线段,分割成无限多的小段。获取每一段端点的实际高程值,与线段上该点的理论高程值。比较二者大小。若 实际高程值>理论高程值,则不通视,且理论高程值为障碍点。

技术关键点:(1)将线段分割为很多小段,并获取每一段的端点。

(2)线段上的点,需要同时获取屏幕坐标和真实世界坐标

tip:结果的准确性,取决于分割的颗粒度。

最新的规则要求博文有字数限制。

没办法,凑一点字数吧。希望后续我也能更新更多的三维相关的文章。

字数还不够?凑字君上线。聊一聊我最近做的功能吧:视频投放(简陋版)、点、线、填充绘制、飞行(flyTo)、粒子特效。但这些功能都有素材,所以不想写啦。

实现代码:

private sightline(startWorldPoint: Cesium.Cartesian3,
    endWorldPoint: Cesium.Cartesian3):Ces
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值