【问题标题】:Displaying feature name using Openlayers and GEOServer使用 Openlayers 和 GEOServer 显示特征名称
【发布时间】:2012-07-27 18:04:03
【问题描述】:

我试图在加载时在地图中显示要素名称(例如:建筑物的名称)。

我们如何使用 GeoServerOpenLayers 中显示它。

谢谢, 阿肖克

【问题讨论】:

    标签: openlayers geoserver


    【解决方案1】:

    您需要使用 geoserver 中的样式为该功能定义 TextSymbolizer。转到geoserver admin --> Styles --> 添加新样式。

    如下添加一个TextSymblizer

    <sld:NamedLayer xmlns:sld="http://www.opengis.net/sld"
        xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml">
        <sld:UserStyle>
            <sld:Name>layer_name</sld:Name>
            <sld:Title>layer_title</sld:Title>
            <sld:Abstract/>
            <sld:FeatureTypeStyle>
                <sld:FeatureTypeName>Feature</sld:FeatureTypeName>
    
                <sld:Rule>
                    <sld:Name>rule01</sld:Name>                             
                    <sld:TextSymbolizer>
                        <sld:Label>
                            <ogc:PropertyName>feature_name</ogc:PropertyName>
                        </sld:Label>
                        <sld:Font>
                          <sld:CssParameter name="font-family">Arial</sld:CssParameter>
                          <sld:CssParameter name="font-style">Normal</sld:CssParameter>
                          <sld:CssParameter name="font-size">12</sld:CssParameter>
                        </sld:Font>
    
    
                        <sld:LabelPlacement>
                            <sld:PointPlacement>
                            <sld:AnchorPoint>
                                <sld:AnchorPointX>
                                    0.5
                                </sld:AnchorPointX>
                                <sld:AnchorPointY>
                                    0.5
                                </sld:AnchorPointY>
                            </sld:AnchorPoint>
                            </sld:PointPlacement>
                        </sld:LabelPlacement>            
                    </sld:TextSymbolizer>
                </sld:Rule>
            </sld:FeatureTypeStyle>
        </sld:UserStyle>
    </sld:NamedLayer>
    

    在标签内定义需要显示其值的特征。 接下来将给定的图层与此样式相关联,更新并重新加载。

    【讨论】:

      【解决方案2】:

      如果您使用 WMS 图层,请尝试使用SLD styles。但是,如果你使用矢量图层,你必须使用 OpenLayers StyleMap to label your features,试试这个

      var style = new OpenLayers.StyleMap({
          default :new OpenLayers.Style({
                'label': '${feature_attr}'
          })
      })
      

      【讨论】:

        猜你喜欢
        • 2012-12-17
        • 2018-04-07
        • 2018-11-16
        • 1970-01-01
        • 2023-04-06
        • 2018-07-07
        • 1970-01-01
        • 2020-10-25
        • 2018-12-06
        相关资源
        最近更新 更多