OpenLayers矢量图层要素中的样式属性问题

时间:2014-03-17 08:58:08

标签: openlayers

我正在尝试使用${iconURL}样式属性来确定将在矢量图层要素上显示的图标。图标不会显示。

我的图层初始化代码是:

var s = {
    externalGraphic: "imgs/pp/${iconURL}",
    graphicWidth: 20,
    graphicHeight: 20,
    pointRadius: 20,
    fillOpacity: .2,
};
this.vectorLayer = new OpenLayers.Layer.Vector("vectorLayer",{style: s});

我的功能添加代码是:

var lonLat = new OpenLayers.LonLat( lon ,lat ).transform(
this.fromProjection,
this.toProjection 
);

marker1 = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(lon, lat)
    .transform( this.fromProjection, this.toProjection), 
    {"myFid":featureID, "iconURL": "stop.png"});
this.vectorLayer.addFeatures([marker1]);

图标无法显示。

如果我在var s而不是$ {iconURL}中放入实际文件名,则会显示图标。 我仔细检查了$ {iconURL}等的值。一切都很好看。我似乎没有做变量替换或其他事情。

我无法解决这个问题。请帮助一个受折磨的灵魂。

问候 格兰特

1 个答案:

答案 0 :(得分:0)

我在直接设置图层样式方面遇到了问题,但是如果您使用StyleMap则可以使用它。所以,除了你需要指定你的风格是StyleMap的默认渲染意图之外,你首先走在正确的轨道上:

var s = {
    externalGraphic: '${iconURL}',
    graphicHeight: 20  
};      
var myStyleMap = new OpenLayers.StyleMap({
    "default": s
});
var vectorLayer = new OpenLayers.Layer.Vector("Vector Layer",{
    styleMap: myStyleMap
});
关于JSFiddle的

Here it is,以及OpenLayers docs中的简要提及。