Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group symbolizer reference #61

Closed
wants to merge 3 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
142 changes: 142 additions & 0 deletions latest/reference.json
Original file line number Diff line number Diff line change
Expand Up @@ -1933,6 +1933,148 @@
"default-value": "0"
}
},
"group": {
"style-name": {
"css": "group-name",
"type": "string",
"required": false,
"default-value": "",
"serialization": "rules",
"tag-name": "GroupRule",
"doc": "Name to be used for matching style definitions to the group symbolizer."
},
"style-class": {
"css": "group-class",
"type": "string",
"required": false,
"default-value": "",
"serialization": "rules",
"tag-name": "GroupRule",
"doc": "Class names, seperated by spaces, to be used for matching style definitions to the group symbolizer."
},
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure that the above two attributes belong here in mapnik reference, because they do not correspond directly with options used by mapnik. The 'group-name' and 'group-class' css options are really aimed at the carto compiler, which will use the name and class just like a layer to build rules and symbolizers that go inside of the group symbolizer. I included them here mostly for simpler validation in carto.

"layout": {
"css": "group-layout",
"required": true,
"type": "tags",
"serialization": "tag",
"doc": "Layout definition for the group."
},
"start-column": {
"css": "group-start-column",
"doc": "Starting index for indexed column names.",
"type": "unsigned",
"default-value": 1
},
"num-columns": {
"css": "group-num-columns",
"doc": "Range of indexed columns. Index values will range from group-start-column to group-start-column + group-num-columns.",
"type": "unsigned",
"default-value": 0,
"default-meaning": "Zero means that no indexed columns will be used."
},
"repeat-key": {
"css": "group-repeat-key",
"doc": "Pattern to create unique key from data columns to indicate identical labels. This is used with minimum-distance to avoid excessive repetition of identical labels across features.",
"type": "unsigned",
"default-value": 1
},
"placement": {
"css": "group-placement",
"type": [
"point",
"line",
"vertex",
"interior"
],
"default-value": "point",
"doc": "How this group should be placed. Point placement attempts to place it on top of points, line places along lines multiple times per feature, vertex places on the vertexes of polygons, and interior attempts to place inside of polygons."
},
"avoid-edges": {
"css": "group-avoid-edges",
"doc": "Avoid placing groups that intersect with tile boundaries.",
"type": "boolean",
"default-value": false
},
"allow-overlap": {
"css": "group-allow-overlap",
"type": "boolean",
"default-value": false,
"doc": "Control whether overlapping groups are shown or hidden.",
"default-meaning": "Do not allow groups to overlap with other map elements already placed."
},
"minimum-distance": {
"css": "group-min-distance",
"type": "float",
"default-value": 0,
"doc": "Minimum distance to the next group, not necessarily the same group."
},
"spacing": {
"css": "group-spacing",
"type": "float",
"default-value": 0,
"doc": "The spacing between repeated occurrences of the same group on a line"
},
"minimum-padding": {
"css": "group-min-padding",
"default-value": 0,
"doc": "Minimum distance a group will be placed from the edge of a metatile. This option is similiar to group-avoid-edges:true except that the extra margin is used to discard cases where the group+margin are not fully inside the metatile",
"type": "float"
},
"opacity": {
"css": "group-opacity",
"type": "float",
"doc": "The opacity of the image used for the group",
"default-value": 1
},
"clip": {
"css": "group-clip",
"type": "boolean",
"default-value": true,
"default-meaning": "geometry will be clipped to map bounds before rendering",
"doc": "geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."
},
"comp-op": {
"css": "group-comp-op",
"default-value": "src-over",
"default-meaning": "add the current symbolizer on top of other symbolizer",
"doc": "Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",
"type": ["clear",
"src",
"dst",
"src-over",
"dst-over",
"src-in",
"dst-in",
"src-out",
"dst-out",
"src-atop",
"dst-atop",
"xor",
"plus",
"minus",
"multiply",
"screen",
"overlay",
"darken",
"lighten",
"color-dodge",
"color-burn",
"hard-light",
"soft-light",
"difference",
"exclusion",
"contrast",
"invert",
"invert-rgb",
"grain-merge",
"grain-extract",
"hue",
"saturation",
"color",
"value"
]
}
},
"debug": {
"mode": {
"css": "debug-mode",
Expand Down