Skip to content

Commit 1e01cae

Browse files
committed
[globe] Fix extent synchronisation
1 parent a4cfbb1 commit 1e01cae

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/plugins/globe/globe_plugin.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -507,15 +507,20 @@ double GlobePlugin::getSelectedElevation()
507507

508508
void GlobePlugin::syncExtent()
509509
{
510+
QgsMapCanvas* mapCanvas = mQGisIface->mapCanvas();
511+
QgsMapRenderer* mapRenderer = mapCanvas->mapRenderer();
512+
QgsRectangle extent = mapCanvas->extent();
513+
510514
osgEarth::Util::EarthManipulator* manip = dynamic_cast<osgEarth::Util::EarthManipulator*>( mOsgViewer->getCameraManipulator() );
511515
//rotate earth to north and perpendicular to camera
512516
manip->setRotation( osg::Quat() );
513517

514-
//get mapCanvas->extent().height() in meters
515-
QgsRectangle extent = mQGisIface->mapCanvas()->extent();
516518
QgsDistanceArea dist;
517-
dist.setEllipsoidalMode( true );
518-
//dist.setProjectionsEnabled( true );
519+
520+
dist.setSourceCrs( mapRenderer->destinationCrs().srsid() );
521+
dist.setEllipsoidalMode( mapRenderer->hasCrsTransformEnabled() );
522+
dist.setEllipsoid( QgsProject::instance()->readEntry( "Measure", "/Ellipsoid", GEO_NONE ) );
523+
519524
QgsPoint ll = QgsPoint( extent.xMinimum(), extent.yMinimum() );
520525
QgsPoint ul = QgsPoint( extent.xMinimum(), extent.yMaximum() );
521526
double height = dist.measureLine( ll, ul );

0 commit comments

Comments
 (0)