Google maps api 3 更改谷歌地图中infowindow的内容

Google maps api 3 更改谷歌地图中infowindow的内容,google-maps-api-3,infowindow,Google Maps Api 3,Infowindow,根据选定的国家和日期,结果列表将显示在地图上。放置带有html数据的标记效果很好,我遇到的问题是处理带有重复标记的情况 我找到了一种检查重复内容的方法,但我希望能够修改已经存在的信息窗口中的内容。这样我就可以将重复标记的内容添加到位于同一位置的现有标记中 我遇到的问题是,我找不到正确的方法来访问重复窗口的现有信息窗口中的数据 如果我发出警报(infoWindow.getContent());,然后我就得到了“未定义”。我还尝试了标记[I].getContent(),但也没有任何效果 关于如何访问

根据选定的国家和日期,结果列表将显示在地图上。放置带有html数据的标记效果很好,我遇到的问题是处理带有重复标记的情况

我找到了一种检查重复内容的方法,但我希望能够修改已经存在的信息窗口中的内容。这样我就可以将重复标记的内容添加到位于同一位置的现有标记中

我遇到的问题是,我找不到正确的方法来访问重复窗口的现有信息窗口中的数据

如果我发出警报(infoWindow.getContent());,然后我就得到了“未定义”。我还尝试了标记[I].getContent(),但也没有任何效果

关于如何访问以前添加的标记的信息窗口、使用getContent()获取其内容以及向其中添加重复标记的数据,有什么想法或建议吗

var marker = new google.maps.Marker({
    map: map,
    position: latlng
});

for (var i=0; i<markers.length; i++) {
    if (markers[i].getPosition().equals(marker.getPosition())) {
        alert('duplicate found');
        alert(infoWindow.getContent());

    } else {
        google.maps.event.addListener(marker, 'click', function() {
            infoWindow.setContent(html);
            infoWindow.open(map, marker);
        });
    }
}
var marker=new google.maps.marker({
地图:地图,
职位:latlng
});

对于(var i=0;i,我很确定你不能完全做你想做的事

据我所知,从API中可以看出,infowindow和marker都不知道彼此之间的任何信息。单击某个标记时,唯一知道应该显示哪个infowindow的是google maps eventhandler

然后,问题的解决方案是将所有信息窗口存储在一个数组中,并将标记存储在另一个数组中,确保相应标记和信息窗口的索引相同

另一种方法是定义自己的对象,确保它可以同时包含标记和信息窗口


无论如何,您都必须循环遍历markers数组以找到重复的标记,然后使用我描述的两个场景中的一个来获得相应的infowindow。这似乎有点愚蠢,但我不知道另一种方法。

是的,到目前为止,这仍然是一种解决方案,基本上是在每次需要时循环遍历刷新信息。您可以通过将kml数据存储到图表或融合表中,并放置条件来添加信息窗口内容来“绕过”它,但仍然会限制