【问题标题】:How clear markers in function setMarkers(map, markers)?函数setMarkers(map,markers)中的标记如何清晰?
【发布时间】:2013-07-01 00:39:11
【问题描述】:

我有这个功能:

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 页面中的切换按钮来隐藏和显示地图中的标记,我该怎么做?

P.S 我尝试 setMap(null),但她不工作。

【问题讨论】:

    标签: google-maps google-maps-api-3 maps google-maps-markers


    【解决方案1】:

    您需要保留对 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)

    【讨论】:

    • 谢谢,但我需要显示和隐藏标记。我做了var markersArray = []; markersArray.push(marker); google.maps.event.addListener(marker, "click", function () { infowindow.setContent(this.html); infowindow.open(map, this); }); function clearOverlays() { setAllMap(null); } function showOverlays() { setAllMap(map); } function setAllMap(map) { for (var i = 0; i &lt; markersArray.length; i++) { markersArray[i].setMap(map); } }; 但是地图没有定义。
    猜你喜欢
    • 2020-10-14
    • 1970-01-01
    • 2021-01-17
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多