在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}等的值。一切看起来都很好。似乎变量替换没有完成或其他什么。

我就是想不出来。请帮助一个可怜的受折磨的灵魂。

的问候格兰特

我也遇到过直接设置图层样式的问题,但如果你使用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文档中简要提到。

相关内容

  • 没有找到相关文章

最新更新