我在我的网站上设置了一个谷歌地图,我希望每当地图的边界发生变化时(通过拖动或缩放)重新加载标记。
我正在使用jQuery添加地图并首先清除标记:
$('#map_canvas').gmap();
$('#map_canvas').gmap('clear', 'markers');
然后,添加标记:
$('#map_canvas').gmap('addMarker', {'position': position, 'bounds': true });
我的问题: 我怎样才能“抓住”移动地图的事件?我已经读过有空闲事件,I saw an example:
google.maps.event.addListener(map, 'idle', function() {
});
但我放的任何东西而不是“map”变量都不起作用...... 我也尝试过:
map = new google.maps.Map(document.getElementById("map_canvas"));
有没有人有想法?
非常感谢,
丹尼
答案 0 :(得分:3)
对于遇到此问题的其他人:
您可以像这样获取地图对象/变量:
$('#map_canvas').gmap();
var map = $('#map_canvas').gmap('get', 'map');
获得地图对象后,您可以将事件侦听器附加到它:
$(map).addEventListener('idle', function() {
console.log('Map is now idle');
console.log(map.getCenter());
});
HTH
答案 1 :(得分:1)
在您定义的函数中,您可以随心所欲地执行任何操作。它总是被称为地图边界变化。例如:
google.maps.event.addListener(map, 'idle', function() {
var bounds = map.getBounds();
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
alert("minimum lat of current map view: " + sw.lat());
});
“map”应该是您之前创建的Google地图。
var map = new google.maps.Map( document.getElementById('map_canvas'), myOptions );
干杯! 托马斯