|
- #include <osg/Notify>
- #include <osgViewer/Viewer>
- #include <osgEarthUtil/EarthManipulator>
- #include <osgEarthUtil/ExampleResources>
- #include <osgEarthAnnotation/ModelNode>
- #include <osgEarthAnnotation/PlaceNode>
- int main()
- {
- int argc = 2;
- char* argv[2];
- argv[0] = "*.exe";
- argv[1] = "D:\\RUNTIME\\osgearth-3.0.1-2.4\\Release\\tests\\gdal_tiff.earth";
- osg::ArgumentParser arguments( &argc, argv );
- osg::ref_ptr<osgViewer::Viewer> viewer=new osgViewer::Viewer(arguments);
- osg::ref_ptr<osg::Group> group=new osg::Group;
- viewer->getDatabasePager()->setUnrefImageDataAfterApplyPolicy( false, false );
-
- osg::ref_ptr<osgEarth::Util::EarthManipulator> em=new osgEarth::Util::EarthManipulator;
- viewer->setCameraManipulator(em);
- osg::ref_ptr<osg::Node> earthFileNode=osgEarth::Util::MapNodeHelper().load(arguments,viewer);
- osgEarth::MapNode* mapNode = osgEarth::MapNode::findMapNode(earthFileNode);
- group->addChild(earthFileNode);
- //add Annotation:
- osgEarth::Symbology::Style AnnotationStyle;
- AnnotationStyle.getOrCreate<osgEarth::IconSymbol>()->url()->setLiteral( "D:/EARTH/data/images/PNG/placemark32.png" );
- AnnotationStyle.getOrCreate<osgEarth::Annotation::TextSymbol>()->size() =50.0;
- const osgEarth::SpatialReference* geoSRS=mapNode->getMapSRS()->getGeographicSRS();
- osg::ref_ptr<osgEarth::Annotation::PlaceNode> pn=new osgEarth::Annotation::PlaceNode(mapNode,osgEarth::GeoPoint(geoSRS, -74.00, 40.71), "New York", AnnotationStyle);
- group->addChild(pn);
- //output Annotation:
- osgDB::Registry::instance()->writeNode(*pn,"Annotation.ive",osgDB::Registry::instance()->getOptions());
- if ( earthFileNode )
- {
- viewer->setSceneData( group );
- viewer->getCamera()->setNearFarRatio(0.00002);
- viewer->getCamera()->setSmallFeatureCullingPixelSize(-1.0f);
- viewer->run();
- }
- return 0;
- }
复制代码 以上是源代码,下面是报错:
Error writing IVE image: StateSet::write(): Unknown StateAttribute: VirtualProgram
|
|