チェックされているかどうかに応じてif else javascript関数を実行するhtmlチェックボックスがあります。チェックボックスをオンにすると、DB から「Fishmark」と呼ばれるマーカーが読み込まれます。これはうまくいきます。
私が助けを必要としているのは、ボックスがチェックされていないときにマーカーを削除することです。if、else ステートメントが正しいことはわかっているので、実際の Google API コードと同じです。サイトの別の部分で setMap(null) を正常に使用したので、Fishmark マーカーをすべてマップから削除しない理由がわかりません。
var checkbox = document.getElementById("chbx");
function addRemoveFishing(){
if(checkbox.checked==true){
fishingUrl("XML_Fishing.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var title = markers[i].getAttribute("title");
var water_type = markers[i].getAttribute("water_type");
var water_depth = markers[i].getAttribute("water_depth");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var bait = markers[i].getAttribute("bait");
var fish = markers[i].getAttribute("fish");
var notes = markers[i].getAttribute("notes");
var Fishhtml = "<b>" + title + "</b> <br/>" + water_type + "</b> <br/>" + water_depth + "</b> <br/>" + bait
+ "</b> <br/>" + fish + "</b> <br/>" + notes;
var icon = FishingIcon;
var Fishmark = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon
});
bindInfoWindow4(Fishmark, map, Fishinfo, Fishhtml);
}
});
}
else {
Fishmark.setMap(null);
}
};