【发布时间】:2012-07-27 18:04:03
【问题描述】:
我试图在加载时在地图中显示要素名称(例如:建筑物的名称)。
我们如何使用 GeoServer 在 OpenLayers 中显示它。
谢谢, 阿肖克
【问题讨论】:
标签: openlayers geoserver
我试图在加载时在地图中显示要素名称(例如:建筑物的名称)。
我们如何使用 GeoServer 在 OpenLayers 中显示它。
谢谢, 阿肖克
【问题讨论】:
标签: openlayers geoserver
您需要使用 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>
在标签内定义需要显示其值的特征。 接下来将给定的图层与此样式相关联,更新并重新加载。
【讨论】:
如果您使用 WMS 图层,请尝试使用SLD styles。但是,如果你使用矢量图层,你必须使用 OpenLayers StyleMap to label your features,试试这个
var style = new OpenLayers.StyleMap({
default :new OpenLayers.Style({
'label': '${feature_attr}'
})
})
【讨论】: