假如有个需求,一个点在一定比例尺下显示一个实心小圆点,再放大到一定比例尺显示一个圆形的img图标,这样怎么实现呢?这就要用到MinScaleDenominator
和MaxScaleDenominator
标签,这两个标签的使用要注意以下三点:
- 这两个标签都要放在
Rule
标签使用 - 这两个标签可以单独使用,
MinScaleDenominator
表示缩放比例大于这个数值时,运用对应Rule;MaxScaleDenominator
表示缩放比例小于这个数值时,运用对应Rule MinScaleDenominator
和MaxScaleDenominator
可同时使用,书写位置不分先后
现在我们来实现开头提到的需求,完整代码如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>chargesite</Name>
<UserStyle>
<Title>gold square point style</Title>
<FeatureTypeStyle>
<Rule>
<MinScaleDenominator>400000</MinScaleDenominator>
<MaxScaleDenominator>1200000</MaxScaleDenominator>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>circle</WellKnownName>
<Fill>
<CssParameter name="fill">#00ff00</CssParameter>
</Fill>
</Mark>
<Size>6</Size>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>400000</MaxScaleDenominator>
<PointSymbolizer>
<Graphic>
<ExternalGraphic>
<OnlineResource xlink:type="simple" xlink:href="charge_site.png" />
<Format>image/png</Format>
</ExternalGraphic>
<Size><ogc:Literal>16</ogc:Literal></Size>
</Graphic>
</PointSymbolizer>
<TextSymbolizer>
<Label>
<ogc:PropertyName>stationName</ogc:PropertyName>
</Label>
<Font>
<CssParameter name="font-family">微软雅黑</CssParameter>
<CssParameter name="font-size">13</CssParameter>
<CssParameter name="font-style">normal</CssParameter>
<CssParameter name="font-weight">bold</CssParameter>
</Font>
<LabelPlacement>
<PointPlacement>
<AnchorPoint>
<AnchorPointX>0</AnchorPointX>
<AnchorPointY>0</AnchorPointY>
</AnchorPoint>
<Displacement>
<DisplacementX>12</DisplacementX>
<DisplacementY>0</DisplacementY>
</Displacement>
</PointPlacement>
</LabelPlacement>
<Fill>
<CssParameter name="fill">#00ff00</CssParameter>
</Fill>
</TextSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
效果为:
1,当缩放比例大于1200000时,没有显示点:
2,当缩放比例在400000到1200000时,显示绿色小圆点:
3,当缩放比例小于400000时,显示指定图片: