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

Proportional colored text #25

Open
ebocher opened this issue Nov 30, 2022 · 2 comments
Open

Proportional colored text #25

ebocher opened this issue Nov 30, 2022 · 2 comments

Comments

@ebocher
Copy link
Collaborator

ebocher commented Nov 30, 2022

Existing conformance classes required for this use case:

Example stylesheet:

Proportional label map uses the same technique than proportional symbols, expected that the size of the font is scaled proportionately.
Here we describe a CSS file that represents the Local Climate Zone types with a text and a color according a climate aleas.

*{
     stroke: grey;
     stroke-width: 0.26;
     label: [LCZ_PRIMARY];
     font-family: Arial;
     font-size: [Interpolate(
                           area(geometry)/10000,
                           0, 10,
                           5, 20,
                           10, 32,
                           'numeric',
                           'linear')];
      font-style: normal;
      font-weight: bold;
      font-fill: black;
      label-anchor: 0.5 0.5;
      label-auto-wrap: 60;
      label-max-displacement: 150;

       /* @title high  */
          [LCZ_PRIMARY <= 4],
          [LCZ_PRIMARY = 8],
          [LCZ_PRIMARY = 10],
          [LCZ_PRIMARY = 105] {
              font-fill: red;
          };
          /* @title mid */
          [LCZ_PRIMARY >= 5]
          [LCZ_PRIMARY <= 7],
          [LCZ_PRIMARY = 9],
          [LCZ_PRIMARY = 10] {
           font-fill :orange;
          };
          /* @title low */
          [LCZ_PRIMARY >= 101]
          [LCZ_PRIMARY <= 104],
          [LCZ_PRIMARY = 107]{
            font-fill:  green;
          }
}

Describe any capability not already addressed by existing conformance classes:

Example image illustrating the portrayal use case:

proportional_label_lcz_area

@maxcollombin
Copy link
Collaborator

maxcollombin commented Dec 8, 2022

Mapbox JSON encoding:

{
  "version": 8,
  "name": "Default Styler",
  "layers": [
    {
      "filter": [
        "==",
        "LCZ_PRIMARY",
        10
      ],
      "id": "high, mid",
      "type": "line"
    },
    {
      "filter": [
        "==",
        "LCZ_PRIMARY",
        10
      ],
      "id": "high, mid",
      "type": "symbol",
      "paint": {
        "text-opacity": 1,
        "text-color": "#000000"
      },
      "layout": {
        "text-field": "{LCZ_PRIMARY}"
      }
    },
    {
      "filter": [
        "any",
        [
          "<=",
          "LCZ_PRIMARY",
          4
        ],
        [
          "==",
          "LCZ_PRIMARY",
          8
        ],
        [
          "==",
          "LCZ_PRIMARY",
          105
        ]
      ],
      "id": "high",
      "type": "line"
    },
    {
      "filter": [
        "any",
        [
          "<=",
          "LCZ_PRIMARY",
          4
        ],
        [
          "==",
          "LCZ_PRIMARY",
          8
        ],
        [
          "==",
          "LCZ_PRIMARY",
          105
        ]
      ],
      "id": "high",
      "type": "symbol",
      "paint": {
        "text-opacity": 1,
        "text-color": "#000000"
      },
      "layout": {
        "text-field": "{LCZ_PRIMARY}"
      }
    },
    {
      "filter": [
        "any",
        [
          "<=x<=",
          "LCZ_PRIMARY",
          5,
          7
        ],
        [
          "==",
          "LCZ_PRIMARY",
          9
        ]
      ],
      "id": "mid",
      "type": "line"
    },
    {
      "filter": [
        "any",
        [
          "<=x<=",
          "LCZ_PRIMARY",
          5,
          7
        ],
        [
          "==",
          "LCZ_PRIMARY",
          9
        ]
      ],
      "id": "mid",
      "type": "symbol",
      "paint": {
        "text-opacity": 1,
        "text-color": "#000000"
      },
      "layout": {
        "text-field": "{LCZ_PRIMARY}"
      }
    },
    {
      "filter": [
        "all",
        [
          "||",
          [
            "==",
            "LCZ_PRIMARY",
            null
          ],
          [
            "<",
            "LCZ_PRIMARY",
            5
          ],
          [
            ">",
            "LCZ_PRIMARY",
            7
          ]
        ],
        [
          "any",
          [
            "<=x<=",
            "LCZ_PRIMARY",
            101,
            104
          ],
          [
            "==",
            "LCZ_PRIMARY",
            107
          ]
        ]
      ],
      "id": "low",
      "type": "line"
    },
    {
      "filter": [
        "all",
        [
          "||",
          [
            "==",
            "LCZ_PRIMARY",
            null
          ],
          [
            "<",
            "LCZ_PRIMARY",
            5
          ],
          [
            ">",
            "LCZ_PRIMARY",
            7
          ]
        ],
        [
          "any",
          [
            "<=x<=",
            "LCZ_PRIMARY",
            101,
            104
          ],
          [
            "==",
            "LCZ_PRIMARY",
            107
          ]
        ]
      ],
      "id": "low",
      "type": "symbol",
      "paint": {
        "text-opacity": 1,
        "text-color": "#000000"
      },
      "layout": {
        "text-field": "{LCZ_PRIMARY}"
      }
    },
    {
      "filter": [
        "all",
        [
          "||",
          [
            "==",
            "LCZ_PRIMARY",
            null
          ],
          [
            "<",
            "LCZ_PRIMARY",
            5
          ],
          [
            ">",
            "LCZ_PRIMARY",
            7
          ]
        ],
        [
          "any",
          [
            "==",
            "LCZ_PRIMARY",
            null
          ],
          [
            "<",
            "LCZ_PRIMARY",
            101
          ],
          [
            ">",
            "LCZ_PRIMARY",
            104
          ]
        ],
        [
          ">",
          "LCZ_PRIMARY",
          4
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          8
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          9
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          10
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          105
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          107
        ]
      ],
      "id": "",
      "type": "line"
    },
    {
      "filter": [
        "all",
        [
          "||",
          [
            "==",
            "LCZ_PRIMARY",
            null
          ],
          [
            "<",
            "LCZ_PRIMARY",
            5
          ],
          [
            ">",
            "LCZ_PRIMARY",
            7
          ]
        ],
        [
          "any",
          [
            "==",
            "LCZ_PRIMARY",
            null
          ],
          [
            "<",
            "LCZ_PRIMARY",
            101
          ],
          [
            ">",
            "LCZ_PRIMARY",
            104
          ]
        ],
        [
          ">",
          "LCZ_PRIMARY",
          4
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          8
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          9
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          10
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          105
        ],
        [
          "!=",
          "LCZ_PRIMARY",
          107
        ]
      ],
      "id": "",
      "type": "symbol",
      "paint": {
        "text-opacity": 1,
        "text-color": "#000000"
      },
      "layout": {
        "text-field": "{LCZ_PRIMARY}"
      }
    }
  ]
}

@maxcollombin
Copy link
Collaborator

SLD encoding:

<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor
	xmlns="http://www.opengis.net/sld"
	xmlns:sld="http://www.opengis.net/sld"
	xmlns:gml="http://www.opengis.net/gml"
	xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
	<sld:NamedLayer>
		<sld:Name>Default Styler</sld:Name>
		<sld:UserStyle>
			<sld:Name>Default Styler</sld:Name>
			<sld:FeatureTypeStyle>
				<sld:Name>name</sld:Name>
				<sld:Rule>
					<sld:Title>high, mid</sld:Title>
					<ogc:Filter>
						<ogc:PropertyIsEqualTo>
							<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
							<ogc:Literal>10</ogc:Literal>
						</ogc:PropertyIsEqualTo>
					</ogc:Filter>
					<sld:LineSymbolizer>
						<sld:Stroke>
							<sld:CssParameter name="stroke">#808080</sld:CssParameter>
							<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
						</sld:Stroke>
					</sld:LineSymbolizer>
					<sld:TextSymbolizer>
						<sld:Label>
							<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
						</sld:Label>
						<sld:Font>
							<sld:CssParameter name="font-family">Arial</sld:CssParameter>
							<sld:CssParameter name="font-size">
								<ogc:Function name="Interpolate">
									<ogc:Div>
										<ogc:Function name="Area">
											<ogc:PropertyName>geometry</ogc:PropertyName>
										</ogc:Function>
										<ogc:Literal>10000</ogc:Literal>
									</ogc:Div>
									<ogc:Literal>0</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>5</ogc:Literal>
									<ogc:Literal>20</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>32</ogc:Literal>
									<ogc:Literal>numeric</ogc:Literal>
									<ogc:Literal>linear</ogc:Literal>
								</ogc:Function>
							</sld:CssParameter>
							<sld:CssParameter name="font-style">normal</sld:CssParameter>
							<sld:CssParameter name="font-weight">bold</sld:CssParameter>
						</sld:Font>
						<sld:LabelPlacement>
							<sld:PointPlacement>
								<sld:AnchorPoint>
									<sld:AnchorPointX>0.5</sld:AnchorPointX>
									<sld:AnchorPointY>0.5</sld:AnchorPointY>
								</sld:AnchorPoint>
							</sld:PointPlacement>
						</sld:LabelPlacement>
						<sld:Fill>
							<sld:CssParameter name="fill">#ffa500</sld:CssParameter>
						</sld:Fill>
						<sld:VendorOption name="autoWrap">60</sld:VendorOption>
						<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
					</sld:TextSymbolizer>
				</sld:Rule>
				<sld:Rule>
					<sld:Title>high</sld:Title>
					<ogc:Filter>
						<ogc:Or>
							<ogc:PropertyIsLessThanOrEqualTo>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>4</ogc:Literal>
							</ogc:PropertyIsLessThanOrEqualTo>
							<ogc:PropertyIsEqualTo>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>8</ogc:Literal>
							</ogc:PropertyIsEqualTo>
							<ogc:PropertyIsEqualTo>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>105</ogc:Literal>
							</ogc:PropertyIsEqualTo>
						</ogc:Or>
					</ogc:Filter>
					<sld:LineSymbolizer>
						<sld:Stroke>
							<sld:CssParameter name="stroke">#808080</sld:CssParameter>
							<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
						</sld:Stroke>
					</sld:LineSymbolizer>
					<sld:TextSymbolizer>
						<sld:Label>
							<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
						</sld:Label>
						<sld:Font>
							<sld:CssParameter name="font-family">Arial</sld:CssParameter>
							<sld:CssParameter name="font-size">
								<ogc:Function name="Interpolate">
									<ogc:Div>
										<ogc:Function name="Area">
											<ogc:PropertyName>geometry</ogc:PropertyName>
										</ogc:Function>
										<ogc:Literal>10000</ogc:Literal>
									</ogc:Div>
									<ogc:Literal>0</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>5</ogc:Literal>
									<ogc:Literal>20</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>32</ogc:Literal>
									<ogc:Literal>numeric</ogc:Literal>
									<ogc:Literal>linear</ogc:Literal>
								</ogc:Function>
							</sld:CssParameter>
							<sld:CssParameter name="font-style">normal</sld:CssParameter>
							<sld:CssParameter name="font-weight">bold</sld:CssParameter>
						</sld:Font>
						<sld:LabelPlacement>
							<sld:PointPlacement>
								<sld:AnchorPoint>
									<sld:AnchorPointX>0.5</sld:AnchorPointX>
									<sld:AnchorPointY>0.5</sld:AnchorPointY>
								</sld:AnchorPoint>
							</sld:PointPlacement>
						</sld:LabelPlacement>
						<sld:Fill>
							<sld:CssParameter name="fill">#ff0000</sld:CssParameter>
						</sld:Fill>
						<sld:VendorOption name="autoWrap">60</sld:VendorOption>
						<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
					</sld:TextSymbolizer>
				</sld:Rule>
				<sld:Rule>
					<sld:Title>mid</sld:Title>
					<ogc:Filter>
						<ogc:Or>
							<ogc:PropertyIsBetween>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:LowerBoundary>
									<ogc:Literal>5</ogc:Literal>
								</ogc:LowerBoundary>
								<ogc:UpperBoundary>
									<ogc:Literal>7</ogc:Literal>
								</ogc:UpperBoundary>
							</ogc:PropertyIsBetween>
							<ogc:PropertyIsEqualTo>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>9</ogc:Literal>
							</ogc:PropertyIsEqualTo>
						</ogc:Or>
					</ogc:Filter>
					<sld:LineSymbolizer>
						<sld:Stroke>
							<sld:CssParameter name="stroke">#808080</sld:CssParameter>
							<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
						</sld:Stroke>
					</sld:LineSymbolizer>
					<sld:TextSymbolizer>
						<sld:Label>
							<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
						</sld:Label>
						<sld:Font>
							<sld:CssParameter name="font-family">Arial</sld:CssParameter>
							<sld:CssParameter name="font-size">
								<ogc:Function name="Interpolate">
									<ogc:Div>
										<ogc:Function name="Area">
											<ogc:PropertyName>geometry</ogc:PropertyName>
										</ogc:Function>
										<ogc:Literal>10000</ogc:Literal>
									</ogc:Div>
									<ogc:Literal>0</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>5</ogc:Literal>
									<ogc:Literal>20</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>32</ogc:Literal>
									<ogc:Literal>numeric</ogc:Literal>
									<ogc:Literal>linear</ogc:Literal>
								</ogc:Function>
							</sld:CssParameter>
							<sld:CssParameter name="font-style">normal</sld:CssParameter>
							<sld:CssParameter name="font-weight">bold</sld:CssParameter>
						</sld:Font>
						<sld:LabelPlacement>
							<sld:PointPlacement>
								<sld:AnchorPoint>
									<sld:AnchorPointX>0.5</sld:AnchorPointX>
									<sld:AnchorPointY>0.5</sld:AnchorPointY>
								</sld:AnchorPoint>
							</sld:PointPlacement>
						</sld:LabelPlacement>
						<sld:Fill>
							<sld:CssParameter name="fill">#ffa500</sld:CssParameter>
						</sld:Fill>
						<sld:VendorOption name="autoWrap">60</sld:VendorOption>
						<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
					</sld:TextSymbolizer>
				</sld:Rule>
				<sld:Rule>
					<sld:Title>low</sld:Title>
					<ogc:Filter>
						<ogc:And>
							<ogc:Or>
								<ogc:PropertyIsNull>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								</ogc:PropertyIsNull>
								<ogc:PropertyIsLessThan>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
									<ogc:Literal>5</ogc:Literal>
								</ogc:PropertyIsLessThan>
								<ogc:PropertyIsGreaterThan>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
									<ogc:Literal>7</ogc:Literal>
								</ogc:PropertyIsGreaterThan>
							</ogc:Or>
							<ogc:Or>
								<ogc:PropertyIsBetween>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
									<ogc:LowerBoundary>
										<ogc:Literal>101</ogc:Literal>
									</ogc:LowerBoundary>
									<ogc:UpperBoundary>
										<ogc:Literal>104</ogc:Literal>
									</ogc:UpperBoundary>
								</ogc:PropertyIsBetween>
								<ogc:PropertyIsEqualTo>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
									<ogc:Literal>107</ogc:Literal>
								</ogc:PropertyIsEqualTo>
							</ogc:Or>
						</ogc:And>
					</ogc:Filter>
					<sld:LineSymbolizer>
						<sld:Stroke>
							<sld:CssParameter name="stroke">#808080</sld:CssParameter>
							<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
						</sld:Stroke>
					</sld:LineSymbolizer>
					<sld:TextSymbolizer>
						<sld:Label>
							<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
						</sld:Label>
						<sld:Font>
							<sld:CssParameter name="font-family">Arial</sld:CssParameter>
							<sld:CssParameter name="font-size">
								<ogc:Function name="Interpolate">
									<ogc:Div>
										<ogc:Function name="Area">
											<ogc:PropertyName>geometry</ogc:PropertyName>
										</ogc:Function>
										<ogc:Literal>10000</ogc:Literal>
									</ogc:Div>
									<ogc:Literal>0</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>5</ogc:Literal>
									<ogc:Literal>20</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>32</ogc:Literal>
									<ogc:Literal>numeric</ogc:Literal>
									<ogc:Literal>linear</ogc:Literal>
								</ogc:Function>
							</sld:CssParameter>
							<sld:CssParameter name="font-style">normal</sld:CssParameter>
							<sld:CssParameter name="font-weight">bold</sld:CssParameter>
						</sld:Font>
						<sld:LabelPlacement>
							<sld:PointPlacement>
								<sld:AnchorPoint>
									<sld:AnchorPointX>0.5</sld:AnchorPointX>
									<sld:AnchorPointY>0.5</sld:AnchorPointY>
								</sld:AnchorPoint>
							</sld:PointPlacement>
						</sld:LabelPlacement>
						<sld:Fill>
							<sld:CssParameter name="fill">#008000</sld:CssParameter>
						</sld:Fill>
						<sld:VendorOption name="autoWrap">60</sld:VendorOption>
						<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
					</sld:TextSymbolizer>
				</sld:Rule>
				<sld:Rule>
					<ogc:Filter>
						<ogc:And>
							<ogc:Or>
								<ogc:PropertyIsNull>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								</ogc:PropertyIsNull>
								<ogc:PropertyIsLessThan>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
									<ogc:Literal>5</ogc:Literal>
								</ogc:PropertyIsLessThan>
								<ogc:PropertyIsGreaterThan>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
									<ogc:Literal>7</ogc:Literal>
								</ogc:PropertyIsGreaterThan>
							</ogc:Or>
							<ogc:Or>
								<ogc:PropertyIsNull>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								</ogc:PropertyIsNull>
								<ogc:PropertyIsLessThan>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
									<ogc:Literal>101</ogc:Literal>
								</ogc:PropertyIsLessThan>
								<ogc:PropertyIsGreaterThan>
									<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
									<ogc:Literal>104</ogc:Literal>
								</ogc:PropertyIsGreaterThan>
							</ogc:Or>
							<ogc:PropertyIsGreaterThan>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>4</ogc:Literal>
							</ogc:PropertyIsGreaterThan>
							<ogc:PropertyIsNotEqualTo>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>8</ogc:Literal>
							</ogc:PropertyIsNotEqualTo>
							<ogc:PropertyIsNotEqualTo>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>9</ogc:Literal>
							</ogc:PropertyIsNotEqualTo>
							<ogc:PropertyIsNotEqualTo>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>10</ogc:Literal>
							</ogc:PropertyIsNotEqualTo>
							<ogc:PropertyIsNotEqualTo>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>105</ogc:Literal>
							</ogc:PropertyIsNotEqualTo>
							<ogc:PropertyIsNotEqualTo>
								<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
								<ogc:Literal>107</ogc:Literal>
							</ogc:PropertyIsNotEqualTo>
						</ogc:And>
					</ogc:Filter>
					<sld:LineSymbolizer>
						<sld:Stroke>
							<sld:CssParameter name="stroke">#808080</sld:CssParameter>
							<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
						</sld:Stroke>
					</sld:LineSymbolizer>
					<sld:TextSymbolizer>
						<sld:Label>
							<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
						</sld:Label>
						<sld:Font>
							<sld:CssParameter name="font-family">Arial</sld:CssParameter>
							<sld:CssParameter name="font-size">
								<ogc:Function name="Interpolate">
									<ogc:Div>
										<ogc:Function name="Area">
											<ogc:PropertyName>geometry</ogc:PropertyName>
										</ogc:Function>
										<ogc:Literal>10000</ogc:Literal>
									</ogc:Div>
									<ogc:Literal>0</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>5</ogc:Literal>
									<ogc:Literal>20</ogc:Literal>
									<ogc:Literal>10</ogc:Literal>
									<ogc:Literal>32</ogc:Literal>
									<ogc:Literal>numeric</ogc:Literal>
									<ogc:Literal>linear</ogc:Literal>
								</ogc:Function>
							</sld:CssParameter>
							<sld:CssParameter name="font-style">normal</sld:CssParameter>
							<sld:CssParameter name="font-weight">bold</sld:CssParameter>
						</sld:Font>
						<sld:LabelPlacement>
							<sld:PointPlacement>
								<sld:AnchorPoint>
									<sld:AnchorPointX>0.5</sld:AnchorPointX>
									<sld:AnchorPointY>0.5</sld:AnchorPointY>
								</sld:AnchorPoint>
							</sld:PointPlacement>
						</sld:LabelPlacement>
						<sld:Fill>
							<sld:CssParameter name="fill">#000000</sld:CssParameter>
						</sld:Fill>
						<sld:VendorOption name="autoWrap">60</sld:VendorOption>
						<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
					</sld:TextSymbolizer>
				</sld:Rule>
				<sld:VendorOption name="ruleEvaluation">first</sld:VendorOption>
			</sld:FeatureTypeStyle>
		</sld:UserStyle>
	</sld:NamedLayer>
</sld:StyledLayerDescriptor>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants