Bug report #13105
Rounding error in extreme classes when converting graduated to rule-based rendering
|Affected QGIS version:||2.10.0||Regression?:||No|
|Operating System:||Easy fix?:||No|
|Pull Request or Patch supplied:||No||Resolution:||end of life|
|Crashes QGIS or corrupts data:||No||Copied to github as #:||21170|
I stumble onto a small bug that can lead to geographic entities falling out of class bounds when converting from graduated renderer to rule-based renderer. The consequence is a visual absence on the canvas for those entities.
This seem to occur only when the mapped field have a higher number of decimal places than what the script which generate converted rules decide to store (my field have 15 places, the generated rule have only 6)I joined an example file an here are the steps to reproduce:
- Load the shapefile (UTF8)
- Set up a graduated style and do a classification on the field "idx_vielli"
- Apply to check that all entities are correctly rendered in canvas
- Go back to style and set it to rule-based, the classification is translated into rules
- Apply and notice that entities with minimum and maximum value disappear from the canvas
- Edit the generated rules and round boundary as following:
Remove 1 to the last digit of the lower bound of the lowest class
Add 1 to the last digit of the upper bound of the highest class
- Notice that all entities now show up correctly
Modify the script which convert graduated class into rules so that it apply a failsafe rounding on the lowest and highest class. This should be quick if one know where to look for.
Ensure that the conversion script never round boundary when converting from graduated class.
While better in theory this should be considered carefully as it could generate unknown side effects.
I tested this in a 2.6 QGis version and the bug is also present so bug-fixes should also be applied to LTR cause it seem pretty old.
Thank you in advance for taking this into consideration!
#3 Updated by Giovanni Manghi over 2 years ago
- Resolution set to end of life
- Status changed from Open to Closed
End of life notice: QGIS 2.18 LTR
QGIS 3.4 has recently become our new Long Term Release (LTR) version. This is a major step in our history – a long term release version based on the massive updates, library upgrades and improvements that we carried out in the course of the 2.x to 3x upgrade cycle.
We strongly encourage all users who are currently using QGIS 2.18 LTR as their preferred QGIS release to migrate to QGIS 3.4. This new LTR version will receive regular bugfixes for at least one year. It also includes hundreds of new functions, usability improvements, bugfixes, and other goodies. See the relevant changelogs for a good sampling of all the new features that have gone into version 3.4
Most plugins have been either migrated or incorporated into the core QGIS code base.
We strongly discourage the continued use of QGIS 2.18 LTR as it is now officially unsupported, which means we’ll not provide any bug fix releases for it.
You should also note that we intend to close all bug tickets referring to the now obsolete LTR version. Original reporters will receive a notification of the ticket closure and are encouraged to check whether the issue persists in the new LTR, in which case they should reopen the ticket.
If you would like to better understand the QGIS release roadmap, check out our roadmap page! It outlines the schedule for upcoming releases and will help you plan your deployment of QGIS into an operational environment.
The development of QGIS 3.4 LTR has been made possible by the work of hundreds of volunteers, by the investments of companies, professionals, and administrations, and by continuous donations and financial support from many of you. We sincerely thank you all and encourage you to collaborate and support the project even more, for the long term improvement and sustainability of the QGIS project.