Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenLayers矢量图层功能中的按属性样式存在问题_Openlayers - Fatal编程技术网

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。我已经更新了上面的代码。总体来说,它仍然不起作用。请帮助。