0

私は機能を持っています:

function setMarkers(map, markers) {
        for (var i = 0; i < markers.length; i++) {
            var stores = markers[i];
            var siteLatLng = new google.maps.LatLng(stores[1], stores[2]);

            var marker = new google.maps.Marker({
                position: siteLatLng,
                icon: image,
                map: map,
                title: stores[0],
                html: stores[4]
            });

            google.maps.event.addListener(marker, "click", function () {
                infowindow.setContent(this.html);
                infowindow.open(map, this);
            });
        }
    }

マップ内のマーカーの表示と非表示を切り替えるには、html ページにトグル ボタンが必要です。どうすればよいですか?

PS setMap(null) を試みましたが、うまくいきません。

4

1 に答える 1

0

google.maps.Marker オブジェクトへの参照を保持する必要があります。

var gmarkers = [];

function setMarkers(map, markers) {
    for (var i = 0; i < markers.length; i++) {
        var stores = markers[i];
        var siteLatLng = new google.maps.LatLng(stores[1], stores[2]);

        var marker = new google.maps.Marker({
            position: siteLatLng,
            icon: image,
            map: map,
            title: stores[0],
            html: stores[4]
        });
        gmarkers.push(marker);
        google.maps.event.addListener(marker, "click", function () {
            infowindow.setContent(this.html);
            infowindow.open(map, this);
        });
    }
}

次に、最初のマーカーを非表示にしますgmarkers[0].setMap(null)

于 2013-07-03T14:01:52.867 に答える