マップの視覚化にレイヤーとして追加された2つのFusionテーブルがあります。
- Layer1は場所のリストです(クリックすると、インフォボックスが表示されます)
- Layer2は、いくつかの地域のマップ(インポートされたkmlポリゴン)です。それぞれが天気予報に従って色付けされています(つまり、雨の可能性が高い場合は青、晴れの場合は赤...)
私が欲しいのは:
- ロード時:Layer1のみを表示します。Layer2は非表示のままです。
- ユーザーがLayer2をロード/表示したい場合は、チェックボックスをオンにする必要があります。
どうすればいいのかわかりません。可能だとしても。
以下は私のコードです。
前もって感謝します!
<script type="text/javascript"src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map;
var layer;
var tableid = 1111;
var layer2;
var tableid2 = 2222;
function initialize() {
map = new google.maps.Map(document.getElementById('map_canvas'), {
center: new google.maps.LatLng(10, 10),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
layer = new google.maps.FusionTablesLayer(tableid);
layer.setQuery("SELECT 'geometry' FROM " + tableid);
layer.setMap(map);
layer2 = new google.maps.FusionTablesLayer(tableid2);
layer2.setQuery("SELECT 'coordenadas' FROM " + tableid2);
layer2.setMap(map);
}
function changeLayer(tableidselections) {
if (tableidselections == 1111){
if (document.getElementById("avisos").checked == true) {
if(layer.getMap() == null) { layer.setMap(map); }
}
if (document.getElementById("avisos").checked == false) {
layer.setMap(null);
}
}
if (tableidselections == 2222){
if (document.getElementById("eventos").checked == true) {
if(layer2.getMap() == null) { layer2.setMap(map); }
}
if (document.getElementById("eventos").checked == false) {
layer2.setMap(null);
}
}
}
</script>
</head>
<body onload="initialize();">
<div id="selector_box">
<table>
<tr><td>
<form id="selector_form" style="font-size:14px">
<input type="checkbox" value="1111" name="selector" id="avisos" onclick="changeLayer(this.value);">Show weather info
<!-- <input type="checkbox" value="2222" name="selector" id="eventos" onclick="changeLayer(this.value);">Eventos -->
</form>
</td></tr>
</table>
</div>