sld样式中加载图片

在Geoserver的sld样式文件中,有时需要用户自定义的图片。有两种方式实现:1、加载http网络图片(目前没有成功),2、加载本地磁盘路径下的图片。无论哪种方式,都需要在sld文件中进行配置,具体如下。

1、sld样式文件加载网络图片。需要配置ExternalGraphic标签下OnlineResource标签的xlink:href属性,把它修改成图片的http网络地址(目前没有成功)。

具体代码如下:

<?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:UserLayer> 
        <sld:LayerFeatureConstraints> 
          <sld:FeatureTypeConstraint/> 
        </sld:LayerFeatureConstraints>  
        <sld:UserStyle> 
          <sld:Name>LN09441_L_PNT</sld:Name>  
          <sld:Title>LN09441_L_PNT</sld:Title>  
          <sld:Abstract/>  
          <sld:FeatureTypeStyle> 
            <sld:Name>default</sld:Name>  
            <sld:Title/>  
            <sld:Abstract/>  
            <sld:FeatureTypeName>Feature</sld:FeatureTypeName>  
            <sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>  
            <sld:SemanticTypeIdentifier>simple</sld:SemanticTypeIdentifier>  
            <sld:Rule> 
              <sld:Name>default</sld:Name>  
              <sld:Title/>  
              <sld:Abstract/>  
              <sld:PointSymbolizer> 
                <sld:Graphic> 
                    <ExternalGraphic> 
                        <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://***/LN09441_L_PNT-default.png"/> 
                          <Format>image/png</Format> 
                    </ExternalGraphic> 
                  <sld:Mark> 
                    <sld:WellKnownName>circle</sld:WellKnownName>  
                    <sld:Stroke/> 
                  </sld:Mark>  
                  <sld:Size>8.000000px</sld:Size>  
                  <sld:Rotation>0.0</sld:Rotation> 
                </sld:Graphic> 
              </sld:PointSymbolizer>                  
              <sld:TextSymbolizer/> 
            </sld:Rule> 
          </sld:FeatureTypeStyle> 
        </sld:UserStyle> 
    </sld:UserLayer> 
</sld:StyledLayerDescriptor>
2、sld样式文件加载本地磁盘路径下的路片。需要配置ExternalGraphic标签下OnlineResource标签的xlink:href属性,把它修改成图片相对于GeoServer安装目录\data_dir\workspaces\wzf\styles 的相对路径。例如 xlink:href="images/LN09441_L_PNT-default.png" ,那么就需要把图片放在D:\GeoServer\GeoServer 2.13.1\data_dir\workspaces\wzf\styles\images文件夹下,图片名称保持一致。

具体代码如下:

<?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:UserLayer> 
        <sld:LayerFeatureConstraints> 
          <sld:FeatureTypeConstraint/> 
        </sld:LayerFeatureConstraints>  
        <sld:UserStyle> 
          <sld:Name>LN09441_L_PNT</sld:Name>  
          <sld:Title>LN09441_L_PNT</sld:Title>  
          <sld:Abstract/>  
          <sld:FeatureTypeStyle> 
            <sld:Name>default</sld:Name>  
            <sld:Title/>  
            <sld:Abstract/>  
            <sld:FeatureTypeName>Feature</sld:FeatureTypeName>  
            <sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>  
            <sld:SemanticTypeIdentifier>simple</sld:SemanticTypeIdentifier>  
            <sld:Rule> 
              <sld:Name>default</sld:Name>  
              <sld:Title/>  
              <sld:Abstract/>  
              <sld:PointSymbolizer> 
                <sld:Graphic> 
                    <ExternalGraphic> 
                        <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="images/LN09441_L_PNT-default.png"/> 
                          <Format>image/png</Format> 
                    </ExternalGraphic> 
                  <sld:Mark> 
                    <sld:WellKnownName>circle</sld:WellKnownName>  
                    <sld:Stroke/> 
                  </sld:Mark>  
                  <sld:Size>8.000000px</sld:Size>  
                  <sld:Rotation>0.0</sld:Rotation> 
                </sld:Graphic> 
              </sld:PointSymbolizer>                  
              <sld:TextSymbolizer/> 
            </sld:Rule> 
          </sld:FeatureTypeStyle> 
        </sld:UserStyle> 
    </sld:UserLayer> 
</sld:StyledLayerDescriptor>
image.png
image.png
image.png
具体参考网址:https://gis.stackexchange.com/questions/80614/geoserver-sld-line-styling-with-external-graphic-instead-of-wellknownname
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容