0

我们正在使用谷歌地图,我有一个案例,我们有一个完全填充的地图,充满了标记,当点击地图外的特定结果时,会为相应的标记执行以下代码。

 map.setCenter(new google.maps.Marker({
    position : new google.maps.LatLng(latitude, longitude)
}).getPosition());
map.setZoom(10);
google.maps.event.trigger(currentMarker, 'click', {latLng: new google.maps.LatLng(latitude, longitude)});

此代码用于将指定标记居中、放大标记并激活“单击”事件,该事件依次绘制/打开信息框。

问题是,在运行此代码的大多数情况下,在标记上多次触发 click 事件,导致 InfoBox 重绘,但是这种情况发生了很多次(每次都不是固定的次数)。有谁知道为什么会发生这种情况?

4

1 回答 1

0

currentMarker如果您将 in 传递给google.maps.event.trigger您不需要指定纬度/经度,我非常肯定。它应该只是google.maps.event.trigger(currentMarker, 'click')

同样,另一种选择是在外部链接上使用 jquery 的事件来检测点击,然后在标记上.on()触发。infoWindow.open()下面是这个样子的一个片段。

$('#openmarker').on('click', function(e){
    e.preventDefault();
    infowindow.open(map,currentMarker);
    map.setCenter(currentMarker.getPosition());
});
于 2012-09-19T01:03:40.660 回答