Allows you to make labels prefer to overlap features from certain
layers rather than others. Can also be data defined, so that certain
features are more likely to be covered than others.
act as obstacles
Options are either avoid placing labels over polygon interior
or avoid placing over polygon boundaries. (Previous behaviour
was always avoid placing over interior).
Avoiding placing over boundaries is useful for regional boundary
layers, where the features cover an entire area. In this case
it's impossible to avoid placing labels within these features,
and it looks much better to avoid placing them over the boundaries
between features. End result is better cartographic placement of
labels in this situation.
This allows users to set a layer as just an obstacle for other
layer's labels without rendering any labels of its own.
Ideas for UI improvements are welcome!
When set to this mode, text alignment for labels will be dependant
on the final placement of the label relative to the point. Eg, if
the label is placed to the left of the point then the label will
be right aligned, and if it is placed to the right of the point
then the label will be left aligned.
(fix#11153)
* tree view and attribute selection for layer assigment in dialog
* support fill polygons/HATCH
* represent texts as MTEXT instead of TEXT (including font, slant and weight)
* support for RGB colors when there's no exact color match
* use AutoCAD 2000 DXF (R15) instead of R12
* remove R18 test methods
Funded-By: City of Uster
Funded-By: Ville de Morges
Funded-By: SIGE
- Add labeling engine option to render text-as-text
- Default is still text-as-outlines (vectorized), due to differences between text (as text) and buffer (as outline) methods
- Good output with printing to PDF (searchable, selectable text and embedded fonts)
- OK output with SVG, but differences between text (as text) and buffer (as outline) methods
Does not yet include unit tests or auto-setting of text-as-text for SVG output
- [API] add signal to QgsVectorLayer that is emitted when its labeling font is not found
- Message bar notification on first rendering of layer offers link to open layer's labeling dialog
- Add 'font not found' notification to labeling dialog
- Labeling dialog defaults to 'Text style' section when font is not found, to show notice
- Substituted font is not saved with project, unless user applies changes.
- Change labeling gui font selector dialog to font family combobox (since only family is being chosen)
- Add QgsDataDefined class
- Add QgsDataDefinedButton class
- Add data defined Python support
- Add standalone SVG selector dialog to QgsSvgSelectorWidget class
- Fix for #4607, show only pertinent fields when setting a data defined value
- Fix for #5048 and #5049, data defined settings are literally used
- Fix for #5726, number formatting does not work for expressions
- Fix for #7755, using bufferSize to enable/disable label buffer is confusing
- Fix for #7779, labels do not register in label collision engine; and for #4719, inactive options in labeling dialog
- Prepare label text's expression upfront when preparing layer; makes rendering much faster
- Change name of 'feature obstacles' to appropriate terminology
- Add option to show debug rectangles for shadows to PAL engine properties
- Add small container class, QgsLabelComponent, for temporal values during generation of label components
- Add static image blurring function to QgsSymbolLayerV2Utils
- Fix rotational offset issue with label backgrounds
- Rectangle, square, circle and ellipse generated symbols
- SVG background via new symbology, so uses cache
- Add new gui class QgsSvgSelectorWidget, symbol selector setup culled from symbologyV2
- Does not include any associated data defined mappings, yet
- Does not auto-search for missing SVGs, yet
- Caveat: does not currently account for background size in PAL collision calculations (overlaps occur)
- Allow direct update of QgsColorButton background
- Switch data defined properties from field index- to name-based
- Add routine to migrate properties to new keys: labeling/dataDefined/[enum name]
- Add QHash containing old-style data provider mapping of index to name for use in properties migration
- Update QgsLabelingGui, QgsMapToolLabel, QgsLabelPropertyDialog to work with name-based properties
- Addresses #6763, #6673 and #2113, but does not perform any feature simplification
- Recommend adding some letter [and word] spacing before applying any delta angle adjustment