【问题标题】:Open marker / infowindow from outside?从外面打开标记/信息窗口?
【发布时间】:2013-12-10 04:18:46
【问题描述】:

我正在向我的 Google 地图添加标记,如下所示:

    function createMarker(location, info) {
        var marker = new google.maps.Marker({
            map: map,
            position: location
        });

        google.maps.event.addListener(marker, "click", function () {
            if (infowindow) infowindow.close();
            infowindow = new google.maps.InfoWindow({ content: info, title: 'test' });
            infowindow.open(map, marker);
        });
    }

如何在不手动点击地图的情况下访问和打开标记?

我尝试保存marker 对象并执行marker.click(),但它似乎不起作用。

有什么想法吗?

【问题讨论】:

    标签: google-maps google-maps-markers infowindow


    【解决方案1】:

    添加:

    var markers = new Array();
    
    function getMarkerbyLocation(location) {
        for (var i = 0; i < markers.length; i++) {
            if (markers[i].getPosition().lat() == location.lat() && markers[i].getPosition().lng() == location.lng())
                return markers[i];
        }
    }
    

    修改:

    function createMarker(location, info) {
        var marker = new google.maps.Marker({
            map: map,
            position: location
        });
    
        google.maps.event.addListener(marker, "click", function () {
            if (infowindow) infowindow.close();
            infowindow = new google.maps.InfoWindow({ content: info });
            infowindow.open(map, marker);
        });
    
        // Modification here!
        markers.push(marker);
    }
    

    页面上的某些事件执行以下操作:

    google.maps.event.trigger(getMarkerbyLocation(new google.maps.LatLng(53.43306, 9.98556)), 'click');
    

    【讨论】:

      猜你喜欢
      • 2015-04-11
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      相关资源
      最近更新 更多