osgEarth绘制曲线

问题

在使用osgearth2.10绘制曲线的过程中,绘制的曲线一直显示不了。

解决

最终发现是osgearth版本的原因,本人使用的是osgearth2.10版本,需要添加如下代码:

//osgearth画线测试  osgearth2.10后要添加这一行代码 不然featurenode不可用
	osgEarth::GLUtils::setGlobalDefaults(viewer->getCamera()->getOrCreateStateSet());

测试代码

void osgDigitalEarth::test()
{
	//osgearth画线测试  osgearth2.10后要添加这一行代码 不然featurenode不可用
	osgEarth::GLUtils::setGlobalDefaults(viewer->getCamera()->getOrCreateStateSet());
	const osgEarth::SpatialReference* geoSRS = mapNode->getMapSRS();

	osgEarth::Annotation::FeatureNode* pathNode = 0;
	osgEarth::Symbology::Geometry* path = new  osgEarth::Symbology::LineString();

	osg::Vec3d newYorkMapPoint(-74, 40.714, 10000);
	osg::Vec3d TokyoMapPoint(139.75, 35.68, 10000);
	osg::Vec3d NewYorkWorldPoint;
	osg::Vec3d TokyoWorldPoint;
	mapNode->getMapSRS()->transformToWorld(newYorkMapPoint,NewYorkWorldPoint);
	mapNode->getMapSRS()->transformToWorld(TokyoMapPoint,TokyoWorldPoint);


	path->push_back(newYorkMapPoint);   // New York
	path->push_back(TokyoMapPoint); // Tokyo
	osgEarth::Features::Feature* pathFeature = new osgEarth::Features::Feature(path, geoSRS);
	pathFeature->geoInterp()=osgEarth::GEOINTERP_GREAT_CIRCLE;


	osgEarth::Symbology::Style pathStyle;
	pathStyle.getOrCreate<osgEarth::Symbology::LineSymbol>()->stroke()->color()= osgEarth::Symbology::Color::Yellow;
	pathStyle.getOrCreate<osgEarth::Symbology::LineSymbol>()->stroke()->width() = 1.0f;
	pathStyle.getOrCreate<osgEarth::Symbology::LineSymbol>()->stroke()->smooth() = true;
	pathStyle.getOrCreate<osgEarth::Symbology::LineSymbol>()->tessellationSize() = 75000;

	pathStyle.getOrCreate<osgEarth::Symbology::AltitudeSymbol>()->clamping() = osgEarth::Symbology::AltitudeSymbol::CLAMP_TO_TERRAIN;
	pathStyle.getOrCreate<osgEarth::Symbology::AltitudeSymbol>()->technique() = osgEarth::Symbology::AltitudeSymbol::TECHNIQUE_GPU;
	pathStyle.getOrCreate<osgEarth::Symbology::RenderSymbol>()->depthOffset()->enabled() = true;


	pathNode = new osgEarth::Annotation::FeatureNode(pathFeature, pathStyle);
	mapNode->addChild(pathNode);
}

参考

osgEarth版本原因引发的featurenode不显示问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值