在GeoService开源地图服务器中,发布shp文件及风格文件sld是相互独立的。由于GeoService发布配置还不够灵活,所以直接发布带有中文属性字段的shp时,会发生许多问题。
例如如果shp文件中有一个属性字段为“名称”,当用Udig工具设置其它风格时如果使用了名称作为依据,就会在输出的配置文件中出现中文。如:
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
<sld:UserLayer>
<sld:LayerFeatureConstraints>
<sld:FeatureTypeConstraint/>
</sld:LayerFeatureConstraints>
<sld:UserStyle>
<sld:Name>WXQR</sld:Name>
<sld:Title/>
<sld:FeatureTypeStyle>
<sld:Name>group 0</sld:Name>
<sld:FeatureTypeName>Feature</sld:FeatureTypeName>
<sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>
<sld:SemanticTypeIdentifier>colorbrewer:unique:custom</sld:SemanticTypeIdentifier>
<sld:Rule>
<sld:Name>rule01</sld:Name>
<sld:Title>中</sld:Title>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>危险程度</ogc:PropertyName>
<ogc:Literal>中</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<sld:PolygonSymbolizer>
<sld:Fill>
<sld:CssParameter name="fill">#2892C7</sld:CssParameter>
<sld:CssParameter name="fill-opacity">0.2</sld:CssParameter>
</sld:Fill>
<sld:Stroke>
<sld:CssParameter name="stroke">#C0C0C0</sld:CssParameter>
<sld:CssParameter name="stroke-width">0.1</sld:CssParameter>
</sld:Stroke>
</sld:PolygonSymbolizer>
</sld:Rule>
<sld:Rule>
<sld:Name>rule02</sld:Name>
<sld:Title>低</sld:Title>
<ogc:Filter>