首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SLD -在每个多点上放置标签

SLD -在每个多点上放置标签
EN

Stack Overflow用户
提问于 2016-03-21 08:12:37
回答 1查看 820关注 0票数 1

我有一个多点几何(包含多个点的单个几何图形),我想在每个点上放置一个标签(标签总是相同的)。有可能用SLD来实现这一点吗?现在标签只显示在一个点上。

我的SLD是这样的:

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-21 15:42:41

默认情况下,GeoServer标签引擎会遇到很多麻烦,无法在相同的特性上多次标记,所以这很难!

最后,我使用以下(丑陋)SLD实现了它:

代码语言:javascript
复制
   <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>

然而,这假设您知道在您最大的多点中有多少点,这是相当小的(否则它是大量的复制和粘贴)。

我原本希望能够使用顶点函数labelAllGroup供应商选项,但遗憾的是,两者都没有使用多点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36125881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档