Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow Expressions to be set for LABEL properties using MapScript (#6904)
This pull request allows the new functionality in #6884 of using an expression in a LABEL PRIORITY in MapScript. It takes a similar approach to setting attribute bindings for properties, which requires using the appropriate attribute constant such as `MS_LABEL_BINDING_PRIORITY`: ```python label = mapscript.labelObj() label .setExpressionBinding(mapscript.MS_LABEL_BINDING_PRIORITY, "[MY_ATTRIBUTE] * 2") ``` This is a little clunky but is at least consistent with setting attribute bindings: ```python label = mapscript.labelObj() label.setBinding(mapscript.MS_LABEL_BINDING_COLOR, "NEW_BINDING") ``` While testing this I noticed that the `writeLabel` function used to write Mapfile objects ignored expressions. This seems an oversight also for the `LABEL` `SIZE` expression. If this approach seems appropriate I can use this for other expression bindings. Something to note is that a property could have an attribute binding **and** an expression binding set. In this case the attribute binding currently takes precedence when calculating a shape value, so it also takes precedence when writing to a Mapfile. In theory setting an expression could also set the attribute binding to NULL. This is not currently the case for MapScript or when reading a Mapfile twice.
- Loading branch information