Opened 13 years ago
Closed 13 years ago
#3866 closed bug (fixed)
Measure tool is windows is unusable
Reported by: | NathanW | Owned by: | nobody |
---|---|---|---|
Priority: | major: does not work as expected | Milestone: | Version 1.7.0 |
Component: | MapCanvas | Version: | Trunk |
Keywords: | Cc: | ||
Must Fix for Release: | Yes | Platform: | Windows |
Platform Version: | Awaiting user input: | no |
Description
In windows the measure tool is pretty much unusable, it's very slow and glitches a lot.
Looking at the debug log a lot of calls are made to setEllisoid(). Each time the mouse moves this is printed.
[45184] d:\src\qgis\src\core\qgsdistancearea.cpp(161) : (QgsDistanceArea::setEllipsoid) setEllipsoid: a=6.37814e+06, b=6.37814e+06, 1/f=298.257 [45184] d:\src\qgis\src\core\qgscoordinatereferencesystem.cpp(349) : (QgsCoordinateReferenceSystem::createFromProj4) proj4: +proj=longlat +ellps=WGS84 +no_defs [45184] d:\src\qgis\src\core\qgscoordinatereferencesystem.cpp(378) : (QgsCoordinateReferenceSystem::createFromProj4) proj string supplied has no +a argument [45184] d:\src\qgis\src\core\qgscoordinatereferencesystem.cpp(540) : (QgsCoordinateReferenceSystem::getRecord) running query: select * from tbl_srs where parameters='+proj=longlat +ellps=WGS84 +no_defs' [45184] d:\src\qgis\src\core\qgscoordinatereferencesystem.cpp(562) : (QgsCoordinateReferenceSystem::getRecord) trying system srs.db [45184] d:\src\qgis\src\core\qgscoordinatereferencesystem.cpp(617) : (QgsCoordinateReferenceSystem::getRecord) retrieved: select * from tbl_srs where parameters='+proj=longlat +ellps=WGS84 +no_defs' [45184] d:\src\qgis\src\core\qgscoordinatereferencesystem.cpp(406) : (QgsCoordinateReferenceSystem::createFromProj4) proj4string match search for srsid returned srsid: 3239 [45184] d:\src\qgis\src\core\qgscoordinatereferencesystem.cpp(799) : (QgsCoordinateReferenceSystem::setMapUnits) Projection has linear units of Meter [45184] d:\src\qgis\src\core\qgscoordinatereferencesystem.cpp(799) : (QgsCoordinateReferenceSystem::setMapUnits) Projection has linear units of Meter
Tracked down to this bit of code:
void QgsMeasureDialog::configureDistanceArea( QgsDistanceArea& da ) { QSettings settings; QString ellipsoidId = settings.value( "/qgis/measure/ellipsoid", "WGS84" ).toString(); da.setSourceCrs( mTool->canvas()->mapRenderer()->destinationCrs().srsid() ); da.setEllipsoid( ellipsoidId ); da.setProjectionsEnabled( mcbProjectionEnabled->isChecked() ); }
Which is called on every mouse move. Do we really need to call it on every mouse move?
Change History (2)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
fixed in commit 50d255f20fdb362c6b26bf0bec7f60e3f35ea1e2.
Note:
See TracTickets
for help on using tickets.
Why should it be slower on Windows? I suppose it's just the noisy debugging output that makes it slow.