我正在尝试使用${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}等的值。一切都很好看。我似乎没有做变量替换或其他事情。
我无法解决这个问题。请帮助一个受折磨的灵魂。
问候 格兰特
答案 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中的简要提及。