在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