[GIS] Geoserver SLD text symbology

geoserverlabelingsld

I have problem with the Geoserver.

I have a layer (called "cities") which contains points with attributes.
(ID, Name, Layer, etc….)
I'd like to write out all the names (at now it doesn't matter if overlap eachother).
In the geoserver the points showed correctly but the text-s are missing. Under an exact zoom level the all text shown correctly but above that level nothing. Just the marker point.

This is my SLD:

<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0" 
    xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" 
    xmlns="http://www.opengis.net/sld" 
    xmlns:ogc="http://www.opengis.net/ogc" 
    xmlns:xlink="http://www.w3.org/1999/xlink" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <NamedLayer>
    <Name>Point with styled label</Name>
    <UserStyle>
      <Title>GeoServer SLD Cook Book: Point with styled label</Title>
      <FeatureTypeStyle>
        <Rule>
        <ogc:Filter>
         <ogc:PropertyIsEqualTo>
           <ogc:PropertyName>layer</ogc:PropertyName><![CDATA[
]]>
           <ogc:Literal>17</ogc:Literal>
         </ogc:PropertyIsEqualTo>
       </ogc:Filter>
          <PointSymbolizer>
            <Graphic>
              <Mark>
                <WellKnownName>circle</WellKnownName>
                <Fill>
                  <CssParameter name="fill">#FF0000</CssParameter>
                </Fill>
              </Mark>
              <Size>6</Size>
            </Graphic>
          </PointSymbolizer>
          <TextSymbolizer>
            <Label>
              <ogc:PropertyName>textstring</ogc:PropertyName>
            </Label>
            <Font>
              <CssParameter name="font-family">Arial</CssParameter>
              <CssParameter name="font-size">12</CssParameter>
              <CssParameter name="font-style">normal</CssParameter>
              <CssParameter name="font-weight">bold</CssParameter>
            </Font>
            <Fill>
              <CssParameter name="fill">#000000</CssParameter>
            </Fill>
            <VendorOption name="spaceAround">-10</VendorOption>
            <VendorOption name="maxDisplacement">1</VendorOption>
          </TextSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

Is there any basic restrictions to the labels or any default settings?
Thanks! 🙂


Update:
I updated the SLD with the "conflitresolution".
In the attached image you can see, nothing happened.
Originaly the basic map created in Arcgis. The cartographer who originaly (a few years ago) created the map placed every single label to the right place (that time they made paper maps not webmaps). Now I'd like to put almost every label back to their place. The original shape has different layer to bigger and smaller cities and exact anchor point, angle, font size ect….
So that is why I'd like to show all label at the same time and scale, because the layera are scale dependent.
enter image description here

Thanks again 🙂


Update 2:
I tired Mario's code but still the same problem :/
enter image description here

Best Answer

I guess your map is tiled, and GeoServer by default won't paint partial labels, those crossing tile boundaries, as there is no guarantee the other half will be visible. You can force them to appear like this:

 <VendorOption name="conflictResolution">false</VendorOption>
 <VendorOption name="partials">true</VendorOption>

You will need at least version 2.6.x, see also http://docs.geoserver.org/2.6.x/en/user/styling/sld-reference/labeling.html#partials

Related Question