标记障碍物

geoserver实现了一种解决标签冲突的算法,以防止标签相互重叠。默认情况下,该算法只考虑与其他标签的冲突。这可能导致标签与其他符号重叠,从而产生不希望看到的效果。

../../../_images/label-obstacle1.jpg
../../../_images/label-obstacle2.jpg

geoserver支持名为 labelObstacle 允许将符号标记为障碍物。这会告诉贴标机避免渲染重叠的标签。

警告

当心将线条或多边形符号标记为标签障碍。标签冲突解决例程基于边界框,因此标记为标签障碍将不会导致标签不仅重叠几何体本身,也不会导致其边界框重叠。

<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0" 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>
    <UserStyle>

  <FeatureTypeStyle>
    <Rule>
      <PointSymbolizer>
        <Graphic>
          <ExternalGraphic>
            <OnlineResource
              xlink:type="simple"
              xlink:href="smileyface.png" />
            <Format>image/png</Format>
          </ExternalGraphic>
          <Size>32</Size>
        </Graphic>
        <VendorOption name="labelObstacle">true</VendorOption>
      </PointSymbolizer>
    </Rule>
  </FeatureTypeStyle>

    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>
../../../_images/obs-externalGraphic1.png
../../../_images/obs-externalGraphic2.png

将障碍物应用于常规点样式:

<PointSymbolizer>
  <Graphic>
    <ExternalGraphic>
      <OnlineResource
        xlink:type="simple"
        xlink:href="smileyface.png" />
      <Format>image/png</Format>
    </ExternalGraphic>
    <Size>32</Size>
  </Graphic>
  <VendorOption name="labelObstacle">true</VendorOption>
</PointSymbolizer>
../../../_images/obs-mark1.png
../../../_images/obs-mark2.png

将障碍应用于线/面样式:

../../../_images/obs-line1.png
../../../_images/obs-line2.png
../../../_images/obs-poly1.png
../../../_images/obs-poly2.png