Skyline_Analysis65_3DViewshed

     三维视域分析要解决在一个特定的视角是否能看到某个位置上的建筑。 如果需求合理,数据完备这个三维视域分析的接口完全可以实现我描述的情况。(需求合理指的是视距和视角可及的范围)。

三维视域怎么进行分析先要搞清楚视域分析流程。

第一步:从某一视角观看真实场景 如下图,绿色都是可见的。
这个时候我们使用一个函数根据这个位置和相关参数创建一分析结果。
//观察位置
 IPosition65 ViewerPosition = sg65.Navigate.GetPosition(AltitudeTypeCode .ATC_PIVOT_RELATIVE);

 //横向视域范围 
 double FieldOfViewX = 80.0;

 //纵向视域范围 
 double FieldOfViewY = 60.0;

 //可视距离
 double Distance = 2000; 
Create3DViewshed(ViewerPosition, FieldOfViewX, FieldOfViewY, Distance, "" , "3DViewshed");
第二步:创建完分析结果返回一个I3DViewshed65对象,
StartViewshedVisibilityQuery来控制I3DViewshed65对象的查询,执行完接口就可以开始进行可视位置的查询工作了。

第三步:对可视位置的查询,
QueryPointVisibility(QueryPosition); 
//空间中的任意位置
IPosition65 QueryPosition 
将要查询的位置进行查询后会返回 4类情况,visible,no visble,outside,error。

第四步:关闭查询EndVisibilityQuery()
感兴趣的skyline开发者可以自己尝试三维视域分析这个接口。如果有相关的需求应该可以做出很酷的功能。
如需要以上的代码,可以积分下载
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值