Dan*_*Dan 5 jquery events google-maps
我在自己的网站上设置了一个google地图,并且每当地图范围发生变化(通过拖动或缩放)时,我都希望重新加载标记。
我最初使用jQuery添加地图并清除标记:
$('#map_canvas').gmap();
$('#map_canvas').gmap('clear', 'markers');
Run Code Online (Sandbox Code Playgroud)
然后,添加带有以下内容的标记:
$('#map_canvas').gmap('addMarker', {'position': position, 'bounds': true });
Run Code Online (Sandbox Code Playgroud)
我的问题:如何“捕捉”移动地图的事件?我已经读到有一个空闲事件,并且我看到了一个例子:
google.maps.event.addListener(map, 'idle', function() {
});
Run Code Online (Sandbox Code Playgroud)
但是我放置的任何东西而不是“ map”变量都不起作用...我也尝试过:
map = new google.maps.Map(document.getElementById("map_canvas"));
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?
非常感谢,
丹尼
对于其他遇到此问题的人:
您可以像这样获取地图对象/变量:
$('#map_canvas').gmap();
var map = $('#map_canvas').gmap('get', 'map');
Run Code Online (Sandbox Code Playgroud)
拥有地图对象后,您可以将事件侦听器附加到它:
$(map).addEventListener('idle', function() {
console.log('Map is now idle');
console.log(map.getCenter());
});
Run Code Online (Sandbox Code Playgroud)
HTH
小智 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());
});
Run Code Online (Sandbox Code Playgroud)
“map”应该是您之前创建的谷歌地图。
var map = new google.maps.Map( document.getElementById('map_canvas'), myOptions );
Run Code Online (Sandbox Code Playgroud)
干杯! 托马斯
归档时间: |
|
查看次数: |
10817 次 |
最近记录: |