Use per layer option for label all features option
|Assigned to:||-||% Done:||
|Target version:||Version X - Unplanned|
|Platform version:||Patch supplied:||No|
When defining the label engine settings, the "Show all
labels" option should be a layer property rather than an engine
It's something that PAL does not currently support. But I agree
that it is sometimes useful to label all features even though that
would produce overlaps.
We could improve PAL to place labels in two steps:
1. label features from layers where all features must be labeled,
without collision detection
2. label features from the rest of layers with usual placement
algorithm, labels from step 1 act as obstacles
Updated by Larry Shaffer 9 months ago
I've implemented a version of this in commit a584a9a
It works very well for instances where you need to see many layers, but only 'show all labels' for one or two, like during extensive pin/unpin operations.
However, the implementation does not allow those 'show all' labels to become obstacles in the solution of other labels when collisions occur. The 'show all' labels are dynamically solved for the layout, but will overlay or underlie other labels relative to chosen priority and layer render order during a collision. Visual clarity can sometimes be increased by use of label and buffer transparency.
A more collision-proof solution for 'show all' labels would be Martin's suggestion (or something similar). Even then, with multiple 'show all' layers, collisions would need to be addressed.
Updated by Pirmin Kalberer 8 months ago
- Target version changed from Version 2.0.0 to Version X - Unplanned