使用jquery调用openlayers函数



当用户使用jQuery选择输入元素时,我正试图让OpenLayers设置Layer的可见性。

以下是定义了层的代码的一部分:

stars = new OpenLayers.Layer.Vector("stars", {
    strategies: [new OpenLayers.Strategy.Fixed()],
    protocol: new OpenLayers.Protocol.HTTP({
        url: "textfile.txt",
        format: new OpenLayers.Format.Text()
    })
});
home = new OpenLayers.Layer.Vector("home", {
    strategies: [new OpenLayers.Strategy.Fixed()],
    protocol: new OpenLayers.Protocol.HTTP({
        url: "textfile1.txt",
        format: new OpenLayers.Format.Text()
    })
});
map.addLayers([stars, home]);

Hers是html代码的一部分:

 <ul>
    <li class="ls_sivi"> <input type="checkbox" value="1" style="width:auto"><label>stars</label></li>
    <li class="ls_sivi"><input type="checkbox" value="2" style="width:auto"><label>home</label></li>
 </ul>`

与jQuery相比:

 $(document).ready(function(){
 var sloj = new Array();
 sloj[1]=stars;
 sloj[2]=home;
 $('.ls_sivi input[type="checkbox"]').change(function(){
    var vri = $(this).val();  
    if($(this).is(":checked")){ 
       sloj[vri].setVisibility(true);  
       return
      }
       sloj[vri].setVisibility(false);
     });
  });

我得到:

"sloj[vri].setVisibility"不是函数。

我该如何解决这个问题,因为我有更多的层,这将是最简单的方法?

使用:

map.getLayer(sloj[vri].id).setVisibility();

最新更新