铁路样式采用遮盖的方式实现,既底下放一层灰色的较粗线,上面再放一条较细的白线,控制白线的显示隐藏,就能形成铁路的样式,、、CSDN 下QQ截图粘不过来真是坑、、下面是我配完的
<?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>Default Styler</sld:Name>
<sld:IsDefault>1</sld:IsDefault>
<sld:FeatureTypeStyle>
<sld:Name>simple</sld:Name>
<sld:FeatureTypeName>Feature</sld:FeatureTypeName>
<sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>
<sld:SemanticTypeIdentifier>simple</sld:SemanticTypeIdentifier>
<sld:Rule>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#7F7F7F</sld:CssParameter>
<sld:CssParameter name="stroke-width">3</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#FFFFFF</sld:CssParameter>
<sld:CssParameter name="stroke-width">1.0</sld:CssParameter>
<sld:CssParameter name="stroke-dashoffset">13</sld:CssParameter>
<sld:CssParameter name="stroke-dasharray">16</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:MinScaleDenominator>279936</sld:MinScaleDenominator>
</sld:Rule>
<sld:Rule>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#7F7F7F</sld:CssParameter>
<sld:CssParameter name="stroke-width">3</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#FFFFFF</sld:CssParameter>
<sld:CssParameter name="stroke-width">1.0</sld:CssParameter>
<sld:CssParameter name="stroke-dashoffset">13</sld:CssParameter>
<sld:CssParameter name="stroke-dasharray">20</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:MinScaleDenominator>150000</sld:MinScaleDenominator>
<sld:MaxScaleDenominator>279936</sld:MaxScaleDenominator>
</sld:Rule>
<sld:Rule>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#7F7F7F</sld:CssParameter>
<sld:CssParameter name="stroke-width">4</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#FFFFFF</sld:CssParameter>
<sld:CssParameter name="stroke-width">2.0</sld:CssParameter>
<sld:CssParameter name="stroke-dashoffset">13</sld:CssParameter>
<sld:CssParameter name="stroke-dasharray">20</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:MinScaleDenominator>30000</sld:MinScaleDenominator>
<sld:MaxScaleDenominator>150000</sld:MaxScaleDenominator>
</sld:Rule>
<sld:Rule>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#7F7F7F</sld:CssParameter>
<sld:CssParameter name="stroke-width">6</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#FFFFFF</sld:CssParameter>
<sld:CssParameter name="stroke-width">3.0</sld:CssParameter>
<sld:CssParameter name="stroke-dashoffset">13</sld:CssParameter>
<sld:CssParameter name="stroke-dasharray">20</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:MinScaleDenominator>8000</sld:MinScaleDenominator>
<sld:MaxScaleDenominator>30000</sld:MaxScaleDenominator>
</sld:Rule>
<sld:Rule>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#7F7F7F</sld:CssParameter>
<sld:CssParameter name="stroke-width">6</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#FFFFFF</sld:CssParameter>
<sld:CssParameter name="stroke-width">4.0</sld:CssParameter>
<sld:CssParameter name="stroke-dashoffset">13</sld:CssParameter>
<sld:CssParameter name="stroke-dasharray">20</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:MaxScaleDenominator>8000</sld:MaxScaleDenominator>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:UserLayer>
</sld:StyledLayerDescriptor>
以上代码是分级渲染的,所以比较长,但是结构简单,都是重复的小结,我们拿出一小结看一下
<sld:Rule>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#7F7F7F</sld:CssParameter>
<sld:CssParameter name="stroke-width">3</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#FFFFFF</sld:CssParameter>
<sld:CssParameter name="stroke-width">1.0</sld:CssParameter>
<sld:CssParameter name="stroke-dashoffset">13</sld:CssParameter>
<sld:CssParameter name="stroke-dasharray">16</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:MinScaleDenominator>279936</sld:MinScaleDenominator>
</sld:Rule>
<sld:Stroke>
<sld:CssParameter name="stroke">#7F7F7F</sld:CssParameter>
<sld:CssParameter name="stroke-width">3</sld:CssParameter>
</sld:Stroke>
这几句配置了底下那个灰色的底,颜色是#7F7F7F,宽度是3。
sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#FFFFFF</sld:CssParameter>
<sld:CssParameter name="stroke-width">1.0</sld:CssParameter>
<sld:CssParameter name="stroke-dashoffset">13</sld:CssParameter>
<sld:CssParameter name="stroke-dasharray">16</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
这几句配置了上面白色的一层的显示和隐藏,同样设置颜色为#FFFFFF(白色),宽度为1,dashoffset和dasharray控制显示和隐藏。