OpenLayers矢量图层功能中的按属性样式存在问题
我试图使用OpenLayers矢量图层功能中的按属性样式存在问题,openlayers,Openlayers,我试图使用${iconURL}样式属性来确定将在矢量图层要素上显示的图标。该图标不显示 我的图层初始化代码是: var s = { externalGraphic: "imgs/pp/${iconURL}", graphicWidth: 20, graphicHeight: 20, pointRadius: 20, fillOpacity: .2, }; this.vectorLayer = new OpenLayers.Layer.Vector("vec
${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}等的值。看起来一切正常。我似乎没有进行变量替换之类的工作
我就是想不出来。请帮助一个受折磨的可怜的灵魂
问候
Grant我在直接设置图层样式时也遇到了问题,但如果改用样式图,效果会更好。因此,除了需要指定样式用于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上,以及在.中的简短介绍中,我已经取得了一些进展,但还没有开始工作。我发现在创建层时,我不应该传递样式图,而应该传递一个表示对象的字符串。ie.not:this.vectorLayer=newopenlayers.Layer.Vector(“vectorLayer”,{StyleMap:s});而是this.vectorLayer=new OpenLayers.Layer.Vector(“vectorLayer”,{style:{externalGraphic:{iconURL}”);而且我不应该使用StyleMap关键字,而是使用style。我已经更新了上面的代码。总体来说,它仍然不起作用。请帮助。