在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> <ogc:PropertyIsEqualTo> <ogc:PropertyName>危险程度</ogc:PropertyName> <ogc:Literal>低</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <sld:PolygonSymbolizer> <sld:Fill> <sld:CssParameter name="fill">#BFD48A</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>rule03</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">#D1FF73</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>rule04</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">#F57A7A</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:FeatureTypeStyle> </sld:UserStyle> </sld:UserLayer> </sld:StyledLayerDescriptor>
<?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> <ogc:PropertyIsEqualTo> <ogc:PropertyName>Σ�ճ̶�</ogc:PropertyName> <ogc:Literal>��</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <sld:PolygonSymbolizer> <sld:Fill> <sld:CssParameter name="fill">#BFD48A</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>rule03</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">#D1FF73</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>rule04</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">#F57A7A</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:FeatureTypeStyle> </sld:UserStyle> </sld:UserLayer> </sld:StyledLayerDescriptor>