外部のJavaScript関数hidetype()が呼び出されたときに、選択したカテゴリのGoogleマップマーカーを非表示にしようとしています。無駄に。
私は一般的な概念を以下から取り入れました:http://www.geocodezip.com/v3_MW_example_categories.html
以下は、mysqlから派生したXMLからマーカー情報を抽出するコードです。マーカーをタイプ別にグループ化しています。
downloadUrl("phpsqlajax_genxml2_snow.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "Some infoBubble HTML";
var Gtip = "<b>" + name + "</b>";
var icon = customIcons[type] || {};
var hover = icon.hover;
var hoverout = icon.icon;
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow,
});
marker.mytype = type;
bindInfoWindow(marker, map, infoWindow, html, Gtip, hover, hoverout);
}
});
}
function hidetype(category) {
alert(category);
for (var i=0; i<markers.length; i++) {
if (markers[i].mytype == category) {
markers[i].setVisible(false);
}
}
}
外部でマーカーを削除しようとする方法の例は次のとおりです。
<img onclick="hidetype('1')" src=...>
これは現在、渡された型変数でアラートを吐き出しますが、マーカーは削除されません。前もって感謝します!