在JS级别访问OpenLayers WMS数据参数

时间:2013-07-18 17:24:36

标签: javascript openlayers geoserver wms

我需要为我的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>

1 个答案:

答案 0 :(得分:0)

您正在寻找的是允许绑定函数而不是模板参数的上下文:

var myContext = {
  getLabel: function(feature) {                    
    return feature.attributes.label;
  }
};
var template = {
  label: "${getLabel}"
};
var style = new OpenLayers.Style(template, {
  context : myContext
});

以下是一些资源: