Gis SLD-在每个多点上放置标签
我有一个多点几何体(包含多个点的单个几何体),我想在每个点上放置一个标签(标签总是相同的)。SLD有可能实现这一点吗?现在,标签仅显示在单个点上 我的SLD看起来像这样:Gis SLD-在每个多点上放置标签,gis,geoserver,sld,Gis,Geoserver,Sld,我有一个多点几何体(包含多个点的单个几何体),我想在每个点上放置一个标签(标签总是相同的)。SLD有可能实现这一点吗?现在,标签仅显示在单个点上 我的SLD看起来像这样: <?xml version="1.0" encoding="ISO-8859-1"?> <StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld 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>Multipoint with labels</Name>
<UserStyle>
<Title>Default Point</Title>
<Abstract>A sample style that draws a point</Abstract>
<FeatureTypeStyle>
<Rule>
<Name>rule1</Name>
<Title>Red Square</Title>
<Abstract>A 6 pixel square with a red fill and no stroke</Abstract>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>square</WellKnownName>
<Fill>
<CssParameter name="fill">#FF0000</CssParameter>
</Fill>
</Mark>
<Size>6</Size>
</Graphic>
</PointSymbolizer>
<TextSymbolizer>
<Label>NAME</Label>
</TextSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
带标签的多点
默认点
绘制点的样例样式
规则1
红场
带有红色填充且无笔划的6像素正方形
广场
#FF0000
6.
名称
默认情况下,GeoServer标签引擎会遇到很多麻烦,无法在同一功能上多次添加标签,因此这很难做到
我最终使用以下(丑陋的)SLD管理它:
首都
_geom
0
身份证件
_geom
1.
身份证件
_geom
2.
身份证件
_geom
3.
身份证件
但是,这假设您知道最大的多点中有多少点,并且这相当小(否则需要大量复制和粘贴)
我原本希望能够使用,或者可能使用,但遗憾的是,两者都不能使用多点 默认情况下,GeoServer标签引擎会遇到很多麻烦,无法在同一功能上多次添加标签,因此这很难做到 我最终使用以下(丑陋的)SLD管理它:
首都
_geom
0
身份证件
_geom
1.
身份证件
_geom
2.
身份证件
_geom
3.
身份证件
但是,这假设您知道最大的多点中有多少点,并且这相当小(否则需要大量复制和粘贴)
我原本希望能够使用,或者可能使用,但遗憾的是,两者都不能使用多点 谢谢你的建议。我不知道几何学中会有多少点,但总比没有好。在你的建议之后,我去寻找某种迭代函数,它可以迭代numGeometries并显示所有几何体的标签,但不幸的是找不到。谢谢你的建议。我不知道几何学中会有多少点,但总比没有好。根据你的建议,我去寻找某种迭代函数,它可以迭代numGeometries并显示所有几何体的标签,但不幸的是找不到。
<Rule>
<Title>Capitals</Title>
<TextSymbolizer>
<Geometry>
<ogc:Function name="getGeometryN">
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Literal>0</ogc:Literal>
</ogc:Function>
</Geometry>
<Label>ID</Label>
</TextSymbolizer>
<TextSymbolizer>
<Geometry>
<ogc:Function name="getGeometryN">
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Literal>1</ogc:Literal>
</ogc:Function>
</Geometry>
<Label>ID</Label>
</TextSymbolizer>
<TextSymbolizer>
<Geometry>
<ogc:Function name="getGeometryN">
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Literal>2</ogc:Literal>
</ogc:Function>
</Geometry>
<Label>ID</Label>
</TextSymbolizer>
<TextSymbolizer>
<Geometry>
<ogc:Function name="getGeometryN">
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Literal>3</ogc:Literal>
</ogc:Function>
</Geometry>
<Label>ID</Label>
</TextSymbolizer>
</Rule>