线数据随放大级别增加越来越细问题的解决办法。

在工作过程中发现,线数据会随放大级别增加而变细,解决的方法就是根据级别不同调整线的粗细,

在geoserver平台下,利用udig,通过给样式配置sld文件,根据不同级别以及不同类型进行分级分类渲染矢量数据。

<?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>line1Copy5</sld:Name>
            <sld:FeatureTypeStyle>
                <sld:Name>group0</sld:Name>
                <sld:FeatureTypeName>Feature</sld:FeatureTypeName>
                <sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>
                <sld:SemanticTypeIdentifier>simple</sld:SemanticTypeIdentifier>

                <sld:Rule>
                    <sld:Name>c</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>C</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                  
           
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#999999</sld:CssParameter>
                           <sld:CssParameter name="stroke-width">0.3</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                  
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>c</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>C</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                  
           
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#999999</sld:CssParameter>
                           <sld:CssParameter name="stroke-width">0.8</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>279936</sld:MaxScaleDenominator>
                </sld:Rule>
               <sld:Rule>
                    <sld:Name>c</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>C</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                  
           
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#999999</sld:CssParameter>
                           <sld:CssParameter name="stroke-width">0.8</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>150000</sld:MaxScaleDenominator>
                </sld:Rule>
 <sld:Rule>
                    <sld:Name>c</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>C</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                  
           
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#999999</sld:CssParameter>
                           <sld:CssParameter name="stroke-width">0.8</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>100000</sld:MaxScaleDenominator>
                </sld:Rule>

 <sld:Rule>
                    <sld:Name>c</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>C</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                  
           
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#999999</sld:CssParameter>
                           <sld:CssParameter name="stroke-width">0.8</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>46656</sld:MaxScaleDenominator>
                </sld:Rule>
               <sld:Rule>
                    <sld:Name>c</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>C</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                  
           
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#999999</sld:CssParameter>
                           <sld:CssParameter name="stroke-width">1</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>30000</sld:MaxScaleDenominator>
                </sld:Rule>
 <sld:Rule>
                    <sld:Name>c</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>C</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                  
           
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#999999</sld:CssParameter>
                           <sld:CssParameter name="stroke-width">1</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>15000</sld:MaxScaleDenominator>
                </sld:Rule>

 <sld:Rule>
                    <sld:Name>c</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>C</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                  
           
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#999999</sld:CssParameter>
                           <sld:CssParameter name="stroke-width">1</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>10000</sld:MaxScaleDenominator>
                </sld:Rule>
 <sld:Rule>
                    <sld:Name>c</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>C</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                  
           
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#999999</sld:CssParameter>
                           <sld:CssParameter name="stroke-width">3</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>8000</sld:MaxScaleDenominator>
                </sld:Rule>



                <sld:Rule>
                    <sld:Name>g</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>G</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>              
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#CA272A</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                  
                </sld:Rule>
              
              
              <sld:Rule>
                    <sld:Name>g</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>G</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>              
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#CA272A</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">3</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>279936</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>g</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>G</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>              
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#CA272A</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">3</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>150000</sld:MaxScaleDenominator>
                </sld:Rule>
               <sld:Rule>
                    <sld:Name>g</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>G</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>              
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#CA272A</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">3</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>100000</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>g</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>G</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>              
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#CA272A</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">4</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>46656</sld:MaxScaleDenominator>
                </sld:Rule>
              <sld:Rule>
                    <sld:Name>g</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>G</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>              
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#CA272A</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">4</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>30000</sld:MaxScaleDenominator>
                </sld:Rule>
               <sld:Rule>
                    <sld:Name>g</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>G</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>              
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#CA272A</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">4</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>15000</sld:MaxScaleDenominator>
                </sld:Rule>
            
               <sld:Rule>
                    <sld:Name>g</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>G</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>              
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#CA272A</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">4</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>10000</sld:MaxScaleDenominator>
                </sld:Rule>
                             <sld:Rule>
                    <sld:Name>g</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>G</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>              
                    <sld:LineSymbolizer>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#CA272A</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">8</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>8000</sld:MaxScaleDenominator>
                </sld:Rule>
           <sld:Rule>
                    <sld:Name>s</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                         <sld:Stroke>
                            <sld:CssParameter name="stroke">#0C7231</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">0.8</sld:CssParameter>
                            
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                </sld:Rule>
              
               <sld:Rule>
                    <sld:Name>s</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                         <sld:Stroke>
                            <sld:CssParameter name="stroke">#0C7231</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                            
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                 <sld:MaxScaleDenominator>279936</sld:MaxScaleDenominator>
                </sld:Rule>
               <sld:Rule>
                    <sld:Name>s</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                         <sld:Stroke>
                            <sld:CssParameter name="stroke">#0C7231</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                            
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                 <sld:MaxScaleDenominator>150000</sld:MaxScaleDenominator>
                </sld:Rule>

               <sld:Rule>
                    <sld:Name>s</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                         <sld:Stroke>
                            <sld:CssParameter name="stroke">#0C7231</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                            
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                 <sld:MaxScaleDenominator>100000</sld:MaxScaleDenominator>
                </sld:Rule>
              
              <sld:Rule>
                    <sld:Name>s</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                         <sld:Stroke>
                            <sld:CssParameter name="stroke">#0C7231</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                            
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                 <sld:MaxScaleDenominator>46656</sld:MaxScaleDenominator>
                </sld:Rule>
<sld:Rule>
                    <sld:Name>s</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                         <sld:Stroke>
                            <sld:CssParameter name="stroke">#0C7231</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">2.5</sld:CssParameter>
                            
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                 <sld:MaxScaleDenominator>30000</sld:MaxScaleDenominator>
                </sld:Rule>
<sld:Rule>
                    <sld:Name>s</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                         <sld:Stroke>
                            <sld:CssParameter name="stroke">#0C7231</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">2.5</sld:CssParameter>
                            
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                 <sld:MaxScaleDenominator>15000</sld:MaxScaleDenominator>
                </sld:Rule>
              <sld:Rule>
                    <sld:Name>s</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                         <sld:Stroke>
                            <sld:CssParameter name="stroke">#0C7231</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">2.5</sld:CssParameter>
                            
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                 <sld:MaxScaleDenominator>10000</sld:MaxScaleDenominator>
                </sld:Rule>
<sld:Rule>
                    <sld:Name>s</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>S</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                         <sld:Stroke>
                            <sld:CssParameter name="stroke">#0C7231</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">6.5</sld:CssParameter>
                            
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                 <sld:MaxScaleDenominator>8000</sld:MaxScaleDenominator>
                </sld:Rule>



             

           <sld:Rule>
                    <sld:Name>x</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>X</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#654C36</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">0.6</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                </sld:Rule>
              
           <sld:Rule>
                    <sld:Name>x</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>X</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#654C36</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.2</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>279936</sld:MaxScaleDenominator>
                </sld:Rule>
              <sld:Rule>
                    <sld:Name>x</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>X</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#654C36</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.2</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>150000</sld:MaxScaleDenominator>
                </sld:Rule>
  <sld:Rule>
                    <sld:Name>x</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>X</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#654C36</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.2</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>100000</sld:MaxScaleDenominator>
                </sld:Rule>
  <sld:Rule>
                    <sld:Name>x</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>X</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#654C36</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.2</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>46656</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>x</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>X</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#654C36</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>30000</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>x</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>X</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#654C36</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>15000</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>x</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>X</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#654C36</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>10000</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>x</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>X</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#654C36</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">5.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>8000</sld:MaxScaleDenominator>
                </sld:Rule>





              
              
              
              


                <sld:Rule>
                    <sld:Name>y</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Y</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#AD7B56</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">0.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                </sld:Rule>
              
               <sld:Rule>
                    <sld:Name>y</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Y</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#AD7B56</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>279936</sld:MaxScaleDenominator>
                </sld:Rule>
              
               
               <sld:Rule>
                    <sld:Name>y</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Y</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#AD7B56</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>150000</sld:MaxScaleDenominator>
                </sld:Rule>
               
               <sld:Rule>
                    <sld:Name>y</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Y</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#AD7B56</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>100000</sld:MaxScaleDenominator>
                </sld:Rule>
               
               <sld:Rule>
                    <sld:Name>y</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Y</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#AD7B56</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>46656</sld:MaxScaleDenominator>
                </sld:Rule>
               
               <sld:Rule>
                    <sld:Name>y</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Y</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#AD7B56</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>30000</sld:MaxScaleDenominator>
                </sld:Rule>
              <sld:Rule>
                    <sld:Name>y</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Y</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#AD7B56</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>15000</sld:MaxScaleDenominator>
                </sld:Rule>
              <sld:Rule>
                    <sld:Name>y</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Y</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#AD7B56</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>10000</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>y</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Y</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#AD7B56</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">4.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                   <sld:MaxScaleDenominator>8000</sld:MaxScaleDenominator>
                </sld:Rule>
              



              <sld:Rule>
                    <sld:Name>z</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                      <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">0.6</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
                </sld:Rule>
              
           <sld:Rule>
                    <sld:Name>z</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.2</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>279936</sld:MaxScaleDenominator>
                </sld:Rule>
              <sld:Rule>
                    <sld:Name>z</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.2</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>150000</sld:MaxScaleDenominator>
                </sld:Rule>
  <sld:Rule>
                    <sld:Name>z</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.2</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>100000</sld:MaxScaleDenominator>
                </sld:Rule>
  <sld:Rule>
                    <sld:Name>z</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.2</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>46656</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>z</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>30000</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>z</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>15000</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>z</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>10000</sld:MaxScaleDenominator>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>z</sld:Name>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">4.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>
              <sld:MaxScaleDenominator>8000</sld:MaxScaleDenominator>
                </sld:Rule>  
            </sld:FeatureTypeStyle>
        </sld:UserStyle>
    </sld:UserLayer>
</sld:StyledLayerDescriptor>

以上代码实现的是根据道路类型不同添加filter 筛选,

<ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>roadgradecode</ogc:PropertyName>
                            <ogc:Literal>Z</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>

在filter后面进行样式设置,以下设置了线的颜色及粗细

<sld:LineSymbolizer>
                       <sld:Stroke>
                            <sld:CssParameter name="stroke">#4C99EB</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
                        </sld:Stroke>
                    </sld:LineSymbolizer>

<sld:MaxScaleDenominator>10000</sld:MaxScaleDenominator>

这一句设置了级别,当地图级别放大到1:10000后,将会显示上面配置的样式,当地图级别小于maxscaleDemomination时不会显示以上样式,当然也可以设置级别区间,

<sld:MaxScaleDenominator>50000</sld:MaxScaleDenominator>

<sld:MinScaleDenominator>10000</sld:MinScaleDenominator>

这段代码作用下将只在级别大于1:50000,小于1:10000下显示。


猜你喜欢

转载自blog.csdn.net/xuerwang/article/details/80599576
今日推荐