切换融合表层:如何在选中新复选框时清除所有其他复选框

Toggle fusion table layers: How to clear all other checkboxes when new box checked

本文关键字:复选框 清除 其他 融合      更新时间:2023-09-26

编辑:修复了单选按钮,这是js的切换函数,在加载该图层之前隐藏所有图层:

function toggleLayer(this_layer){
    layer_0.setMap(null);
    layer_1.setMap(null);
    layer_2.setMap(null);
    this_layer.setMap(map);
}

我用JavaScript在同一地图上切换融合表层,这对我来说很好。然而,出于我的目的,两个层不能同时显示(每个融合表层都包含渐变的彩色形状文件,当它们相互重叠显示时,会造成混乱)。

这是我用来切换融合表层的代码:

function toggleLayer(this_layer){
  if(this_layer.getMap()) {
   this_layer.setMap(null)
  } else {
   this_layer.setMap(map);
  }
}
//And here's the HTML 
<form name="checkbox">
  <input class="menu" type="checkbox" id="show_hide_layer_0" checked onchange="toggleLayer(layer_0); "/>
  <label>layer_0</label>
  <input class="menu" type="checkbox" id="show_hide_layer_1" checked onchange="toggleLayer(layer_1)"/>
  <label>layer_1</label>
   <input class="menu" type="checkbox" id="show_hide_layer_2" checked onchange="toggleLayer(layer_2)"/>
  <label>layer_2</label>
</form>

我需要确保一次只有一个融合表层是可见的。现在,这段代码允许选中所有三个框,这使得所有三个融合表层都可见,从而在地图上造成混乱。

是否有一种方法可以在选中一个新框时取消选中所有其他框?非常感谢你的帮助。我应该使用单选按钮吗?

编辑:修复单选按钮,这是js的切换函数隐藏所有图层之前加载这个图层:

function toggleLayer(this_layer){
layer_0.setMap(null);
layer_1.setMap(null);
layer_2.setMap(null);
this_layer.setMap(map);
}