【geoserver】在线的中间加一个箭头

要求在线的中间加一个箭头。百度后没发现现成的解决方案,只能自己想办法了。
考虑了一下,可能有两种方法解决:
1、在线样式下写一个点样式,用箭头表示;
2、在线样式的标注中添加一个剪头。

最后,我用第二个方法实现了这个效果,如下:

<?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>demoline</Name>
    <UserStyle>
      <Title>A orange line style</Title>
      <FeatureTypeStyle>
        <Rule>
          <Title>orange line</Title>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name="stroke">#ff6600</CssParameter>
            </Stroke>
          </LineSymbolizer>
          <TextSymbolizer>
            <Label>
              <![CDATA[ ]]>
            </Label>
            <Graphic>
              <Mark>
                <WellKnownName>shape://oarrow</WellKnownName>
                <Fill>
                  <CssParameter name="fill">#FF0000</CssParameter>
                </Fill>
              </Mark>
              <Size>16</Size>
            </Graphic>
            <VendorOption name="followLine">true</VendorOption>
            <LabelPlacement>
              <LinePlacement>
                <PerpendicularOffset>0</PerpendicularOffset>
              </LinePlacement>
            </LabelPlacement>
          </TextSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

在这里插入图片描述
说明:
1、在TextSymbolizer下放一个Graphic,便会在注记后显示这个符号;
2、我用Label放了一个空格,是因为如果不放置注记的话,符号就不显示(这个应该是geoserver的特性);
3、加上followLine可以让箭头指向线的方向;
4、感觉符号的位置不太对,所以加了PerpendicularOffset来修正。

最后,点样式的方法应该也可以实现这个效果,enmmm,以后再说。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值