Bug report #17984

Very slow rendering of layouts with grids in other CRS than project

Added by Klas Karlsson almost 3 years ago. Updated almost 3 years ago.

Status:Closed
Priority:Normal
Assignee:-
Category:Map Composer/Printing
Affected QGIS version:master Regression?:Yes
Operating System:Ubuntu 17.10 Easy fix?:No
Pull Request or Patch supplied:No Resolution:fixed/implemented
Crashes QGIS or corrupts data:No Copied to github as #:25880

Description

[FEEDBACK]

Working with a map layout with grids in a different coordinate system than the project, results in very slow updates, for example when panning the map contents.

Tried with project in national crs SWEREF99TM and in UTM33, with lat/long grid in WGS-84 as well as grids in UTM and SWEREF99TM.

This also affects the time it takes to open a layout. More complex layouts with several grids will take a very long time to open.

Turning the grids "off" while working with the layout is a workaround.

Also (may be separate issue), some layouts open without labels for the grids. When selecting the grid in the "Item Properties" the labels are drawn as they are supposed to.

Associated revisions

Revision 6f364fdb
Added by Nyall Dawson almost 3 years ago

[layouts] Use correct transform context for map grids

Fixes #17984

History

#1 Updated by Klas Karlsson almost 3 years ago

Not sure if it helps but the terminal output shows a lot of text like below repeatedly during redraw.

Warning: No QgsCoordinateTransformContext context set for transform
Stacktrace (piped through c++filt):
/usr/bin/qgis.bin(+0xc84e)[0x562b0b0c684e]
/usr/bin/qgis.bin(+0xcd5a)[0x562b0b0c6d5a]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x9561a)[0x7f7e3e26761a]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(QMessageLogger::warning(char const*, ...) const+0xae)[0x7f7e3e2683ee]
/usr/lib/libqgis_core.so.2.99.0(QgsCoordinateTransform::transformCoords(int, double*, double*, double*, QgsCoordinateTransform::TransformDirection) const+0x302)[0x7f7e3ff2724c]
/usr/lib/libqgis_core.so.2.99.0(QgsCoordinateTransform::transform(QgsPointXY const&, QgsCoordinateTransform::TransformDirection) const+0xd3)[0x7f7e3ff25473]
/usr/lib/libqgis_core.so.2.99.0(QgsCoordinateTransform::transform(double, double, QgsCoordinateTransform::TransformDirection) const+0x66)[0x7f7e3ff255a6]
/usr/lib/libqgis_core.so.2.99.0(QgsLayoutItemMapGrid::yGridLinesCrsTransform(QgsRectangle const&, QgsCoordinateTransform const&, QList<QPair<double, QPolygonF> >&) const+0x308)[0x7f7e402f0720]
/usr/lib/libqgis_core.so.2.99.0(QgsLayoutItemMapGrid::calculateCrsTransformLines() const+0xf7)[0x7f7e402e95b7]
/usr/lib/libqgis_core.so.2.99.0(QgsLayoutItemMapGrid::drawGridCrsTransform(QgsRenderContext&, double, QList<QPair<double, QLineF> >&, QList<QPair<double, QLineF> >&, bool) const+0xfc)[0x7f7e402e8948]
/usr/lib/libqgis_core.so.2.99.0(QgsLayoutItemMapGrid::draw(QPainter*)+0x414)[0x7f7e402ea094]
/usr/lib/libqgis_core.so.2.99.0(QgsLayoutItemMapItemStack::drawItems(QPainter*)+0xac)[0x7f7e402fa8a0]
/usr/lib/libqgis_core.so.2.99.0(QgsLayoutItemMap::paint(QPainter*, QStyleOptionGraphicsItem const*, QWidget*)+0x5c6)[0x7f7e402d58d4]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x44bd32)[0x7f7e3f4cdd32]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x45a906)[0x7f7e3f4dc906]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x45bd7b)[0x7f7e3f4ddd7b]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x45ca37)[0x7f7e3f4dea37]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x421fe1)[0x7f7e3f4a3fe1]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(QGraphicsEffectSource::draw(QPainter*)+0x58)[0x7f7e3f542138]
/usr/lib/libqgis_core.so.2.99.0(QgsLayoutEffect::draw(QPainter*)+0x8e)[0x7f7e40287b7e]

#2 Updated by Nyall Dawson almost 3 years ago

  • % Done changed from 0 to 100
  • Status changed from Open to Closed

#3 Updated by Giovanni Manghi almost 3 years ago

  • Resolution set to fixed/implemented

Also available in: Atom PDF