我需要为我的Vector层上的元素添加自定义标签,但是在每个代码示例中,我都看到只使用{$ param}语法直接传递参数,例如:
var myStyle = new OpenLayers.StyleMap({
default:{
pointRadius: 40,
externalGraphic:'img/pin.png',
label: "{$param}"
}
});
我需要的是制作一种类似这样的数据渲染器:
var myStyle = new OpenLayers.StyleMap({
default:{
pointRadius: 40,
externalGraphic:'img/pin.png',
label: function(){
if (param === 1){
return "one";
} else {
return "not one";
}
}()
}
});
所以问题是 - 在这种情况下如何将param值转换为变量来处理它?</ p>
答案 0 :(得分:0)
您正在寻找的是允许绑定函数而不是模板参数的上下文:
var myContext = {
getLabel: function(feature) {
return feature.attributes.label;
}
};
var template = {
label: "${getLabel}"
};
var style = new OpenLayers.Style(template, {
context : myContext
});
以下是一些资源: