osgearth_los--视点遮挡分析

可视分析
请添加图片描述

//创建点到点的可视化分析
    LinearLineOfSightNode* los = new LinearLineOfSightNode(
        mapNode,
        GeoPoint(geoSRS, -121.665, 46.0878, 1258.00, ALTMODE_ABSOLUTE),
        GeoPoint(geoSRS, -121.488, 46.2054, 3620.11, ALTMODE_ABSOLUTE) );

    losGroup->addChild( los );

    //创建编辑器,可拖动两个关键点
    LinearLineOfSightEditor* p2peditor = new LinearLineOfSightEditor( los );
    root->addChild( p2peditor );

    //Create a relative point to point LineOfSightNode.
    LinearLineOfSightNode* relativeLOS = new LinearLineOfSightNode(
	     mapNode,
	     GeoPoint(geoSRS, -121.2, 46.1, 10, ALTMODE_RELATIVE),
	     GeoPoint(geoSRS, -121.488, 46.2054, 10, ALTMODE_RELATIVE) );
    losGroup->addChild( relativeLOS );
    LinearLineOfSightEditor* relEditor = new LinearLineOfSightEditor( relativeLOS );
    root->addChild( relEditor );

    //Create a RadialLineOfSightNode that allows you to do a 360 degree line of sight analysis.
    RadialLineOfSightNode* radial = new RadialLineOfSightNode( mapNode );
    radial->setCenter( GeoPoint(geoSRS, -121.515, 46.054, 847.604, ALTMODE_ABSOLUTE) );
    radial->setRadius( 2000 );
    radial->setNumSpokes( 100 );
    losGroup->addChild( radial );
    RadialLineOfSightEditor* radialEditor = new RadialLineOfSightEditor( radial );
    losGroup->addChild( radialEditor );
    //创建圆形可视分析
    RadialLineOfSightNode* radialRelative = new RadialLineOfSightNode( mapNode );
    radialRelative->setCenter( GeoPoint(geoSRS, -121.2, 46.054, 10, ALTMODE_RELATIVE) );
    radialRelative->setRadius( 3000 );
    radialRelative->setNumSpokes(60);
    losGroup->addChild( radialRelative );
    RadialLineOfSightEditor* radialRelEditor = new RadialLineOfSightEditor( radialRelative );
    losGroup->addChild( radialRelEditor );
osgEarth提供了一些功能来处理地形遮挡。其中一个示例是osgearth_los,它可以通过创建模型动画路径来演示透视的用法。透视是指当两个点之间的视线不被遮挡时,将其绘制为绿色,而被遮挡的部分则设置为红色。在加载earth文件时,需要同时加载地形文件。\[2\] 此外,当模型数量较多时,可以使用osgEarth::Util::ClusterNode节点对象来处理。可以创建一个osg::NodeList,将需要绘制的节点添加到其中,然后将osg::NodeList添加为osgEarth::Util::ClusterNode的子节点。通过控制osgEarth::Util::ClusterNode的半径范围,可以控制节点的显示密集程度,从而处理地形遮挡的问题。\[3\] 需要注意的是,osgEarth还提供了其他处理地形遮挡的功能,具体可以根据实际需求选择合适的方法。 #### 引用[.reference_title] - *1* *3* [osgEarth示例分析——osgearth_cluster](https://blog.csdn.net/qq_34732729/article/details/128183626)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [osgEarth示例分析——osgearth_los](https://blog.csdn.net/qq_34732729/article/details/128256747)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值