2

我知道有很多方法可以对谷歌地图标记进行点击事件处理,我一直在使用这些方法,它们总是很好用。

但只是好奇如果我们能以更好的方式做同样的事情,我正在考虑这个,因为在一个新项目中可能会有 100,000 个标记(当然它们不会同时显示在地图上,但标记的实例确实存在)

google.maps.event.addListener(marker, 'click', clickhandler); function clickhandler(event) { /* 这里 */ }

在 clickhandler 的范围内,我们只有 latLng 信息,我想通过 latLng 搜索标记是不可靠的,它们是浮点数,所以问题是,找到单击哪个标记的最佳方法是什么?

4

2 回答 2

2

标记上的鼠标单击事件将google.maps.MouseEvent 对象传递给侦听器函数,因此:

// give the maker an id
marker.myId = 25;
google.maps.event.addListener(marker, 'click', clickhandler);

function clickhandler(mev) {
    alert(mev.latLng); 
    alert(this.myId);// shows 25
}
于 2012-08-14T06:59:50.677 回答
1

当我试图从一组元素中引用一个元素(例如,具有相同类的元素)时,使用this可以帮助找到触发事件的正确元素。只是为了确保this能正常工作,我与console.log.

google.maps.event.addListener(marker, 'click', clickhandler); function clickhandler() { console.log(this); }

这应该记录标记对象。

于 2012-08-14T05:53:25.497 回答