我正在将代码从使用标记层转换为矢量图层。我在地图上显示标记作为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并同样创建标记不起作用。
提前致谢!
答案 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);