今日无事勾栏听曲 2025-07-07 10:11 采纳率: 33.3%
浏览 9

geoserver 样式 网络路径不生效

geoserver sld文件 图层面样式 网络路径不生效

<?xml version="1.0" encoding="UTF-8"?>
<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">
  <!-- a Named Layer is the basic building block of an SLD document -->
  <NamedLayer>
    <Name>default_polygon</Name>
    <UserStyle>
    <!-- Styles can have names, titles and abstracts -->
      <Title>Default Polygon</Title>
      <Abstract>A sample style that draws a polygon</Abstract>
      <!-- FeatureTypeStyles describe how to render different features -->
      <!-- A FeatureTypeStyle for rendering polygons -->
  <FeatureTypeStyle>
  <Rule>
    <PolygonSymbolizer>
         <Fill>
<GraphicFill>
 <Graphic>
      <ExternalGraphic xmlns="http://www.opengis.net/sld" xmlns:xlink="http://www.w3.org/1999/xlink">
  <OnlineResource xlink:type="simple" xlink:href="http://xxxxxx/mars3d-data/img/11.png" />
  <Format>image/png</Format>
</ExternalGraphic>
  </Graphic>
    </GraphicFill>
      </Fill>
    </PolygonSymbolizer>
  </Rule>
</FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

求原因和解决方案

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2025-07-07 10:15
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    你遇到的问题是 Geoserver 中 SLD 文件中的网络路径不生效,导致样式不显示。

    解决方案是:

    1. 在 SLD 文件中使用 xlink:href 属性来指定网络路径,而不是 xlink:href 属性。
    2. 在 Geoserver 中,需要在 web 目录下创建一个名为 styles 的目录,并将 SLD 文件放置在其中。
    3. 在 Geoserver 的配置文件 geoserver.xml 中,添加以下配置:
    <layer>
      <name>your_layer_name</name>
      <sld>
        <UserStyle>
          <Name>your_style_name</Name>
          <FeatureTypeStyle>
            <Rule>
              <Name>your_rule_name</Name>
              <Symbolizer>
                <Graphic>
                  <Mark>
                    <WellKnownName>your_mark_name</WellKnownName>
                    <Fill>
                      <xlink:href>http://your_network_path/your_image.png</xlink:href>
                    </Fill>
                  </Mark>
                </Graphic>
              </Symbolizer>
            </Rule>
          </FeatureTypeStyle>
        </UserStyle>
      </sld>
    </layer>
    

    其中,xlink:href 属性指定了网络路径。

    1. 重新启动 Geoserver,样式应该生效了。

    代码示例

    <?xml version="1.0" encoding="UTF-8"?>
    <StyledLayerDescriptor xmlns="http://www.opengis.net/sld"
        version="1.0.0"
        xmlns:xlink="http://www.w3.org/1999/xlink">
      <NamedLayer>
        <Name>your_layer_name</Name>
        <UserStyle>
          <Name>your_style_name</Name>
          <FeatureTypeStyle>
            <Rule>
              <Name>your_rule_name</Name>
              <Symbolizer>
                <Graphic>
                  <Mark>
                    <WellKnownName>your_mark_name</WellKnownName>
                    <Fill>
                      <xlink:href>http://your_network_path/your_image.png</xlink:href>
                    </Fill>
                  </Mark>
                </Graphic>
              </Symbolizer>
            </Rule>
          </FeatureTypeStyle>
        </UserStyle>
      </NamedLayer>
    </StyledLayerDescriptor>
    

    重要提示

    • 在 SLD 文件中,网络路径需要使用 xlink:href 属性指定。
    • 在 Geoserver 中,需要在 web 目录下创建一个名为 styles 的目录,并将 SLD 文件放置在其中。
    • 在 Geoserver 的配置文件 geoserver.xml 中,需要添加相应的配置来指定 SLD 文件的路径。
    评论

报告相同问题?

问题事件

  • 创建了问题 7月7日