在openlayers中更改feature.vector的外观

时间:2011-08-10 16:08:00

标签: openlayers

我正在将代码从使用标记层转换为矢量图层。我在地图上显示标记作为Feature.Vector类时遇到问题(在我使用Feature类之前)。

具体来说,我无法弄清楚如何用我选择的独特图像显示每个特征。我已经看过一些如何使用样式图改变一般特征样式的例子,但我还没有看到直接设置特征图像的方法。

这似乎是一个简单的问题,但我还没有找到解决方案。我目前正在尝试使用样式属性:

var feature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(ll.lon, ll.lat), {externalGraphic: "http://www.openlayers.org/dev/img/marker.png"}); 

但是,这只会产生正常的默认图标(橙色圆圈)。

设置功能的data.icon并同样创建标记不起作用。

提前致谢!

1 个答案:

答案 0 :(得分:7)

您将占位符放在图层样式中,该样式由功能属性填充。

var style = OpenLayers.Util.extend({
    externalGraphic : "${icon}",
    pointRadius     : 15
}, OpenLayers.Feature.Vector.style['default']);

var layer   = new OpenLayers.Layer.Vector("Simple Geometry", { style: style }),
    point   = new OpenLayers.Geometry.Point(ll.lon, ll.lat),
    feature = new OpenLayers.Feature.Vector(point, { icon: "icon.png" });

layer.addFeature(feature);