Geoserver线样式配置固定宽度(SLD版本)

一、问题

同个qgis配置图层线样式,指定宽度,就是宽度不随地图缩放而变化。在qgis配置如下

但是这样在导出为sld格式文件后,导入geoserver样式集并发布对应图层,加载图层会发现线宽度还是会随地图缩放而变化。

那就是qgis配置按比例缩放没有生效

二、解决方法

通过uom 属性指定测量单位实现

SE 1.1规范中给出的测量单位,如下:

http://www.opengeospatial.org/se/units/metre
http://www.opengeospatial.org/se/units/foot
http://www.opengeospatial.org/se/units/pixel

以下SLD显示 uom 用于指定 LineSymbolizer 单位:米。实现代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<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>
    <Name>blue line</Name>
    <UserStyle>
      <Title>blue line</Title>
      <Abstract>Default line style</Abstract>
      <FeatureTypeStyle>
        <Rule>
          <Title>Blue Line, 5m large</Title>
          <LineSymbolizer uom="http://www.opengeospatial.org/se/units/metre">
            <Stroke>
              <CssParameter name="stroke">#0000FF</CssParameter>
              <CssParameter name="stroke-width">5</CssParameter>
            </Stroke>
          </LineSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

参考:https://www.osgeo.cn/geoserver-user-manual/styling/sld/extensions/uom.html#unit-of-measure

posted @ 2024-04-15 15:55  槑孒  阅读(68)  评论(0编辑  收藏  举报