我试图使用${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}等的值。一切看起来都很好。似乎变量替换没有完成或其他什么。
我就是想不出来。请帮助一个可怜的受折磨的灵魂。
的问候格兰特
我也遇到过直接设置图层样式的问题,但如果你使用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上,并在OpenLayers文档中简要提到。