getBounds() 在 Google Maps API v3 中
所以为了获得我们的纬度和经度,我们需要移动getBounds()到bounds_changed事件监听器。
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 10,
center: new google.maps.LatLng(lat, lng),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
google.maps.event.addListener(map, 'bounds_changed', function() {
var bounds = map.getBounds();
var ne = bounds.getNorthEast();
var sw = bounds.getSouthWest();
console.log(ne.lat());
console.log(ne.lng());
console.log(sw.lat());
console.log(sw.lng());
});
Run Code Online (Sandbox Code Playgroud)
当视口边界发生变化时会触发此事件。如果你有一些 ajax 调用,每次地图的位置改变时都会触发 ajax 调用。
所以,在这种情况下,更好的解决方案是将getBounds()在idle事件侦听器。当地图在缩放后空闲时会触发此事件。
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 10,
center: new google.maps.LatLng(lat, lng),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
google.maps.event.addListener(map, 'idle', function() {
var bounds = map.getBounds();
var ne = bounds.getNorthEast();
var sw = bounds.getSouthWest();
console.log(ne.lat());
console.log(ne.lng());
console.log(sw.lat());
console.log(sw.lng());
});
Run Code Online (Sandbox Code Playgroud)
这是在"bounds_changed"事件中捕获当前地图边界的代码
google.maps.event.addListener(map, 'bounds_changed', function() {
try {
if( initialBounds == null ) {
initialBounds = map.getBounds();
}
} catch( err ) {
alert( err );
}
});
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用此代码返回绑定的地图
google.maps.event.addDomListener(controlUI, 'click', function() {
// map.setCenter(home)
if( initialBounds != null ) {
map.fitBounds( initialBounds );
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14965 次 |
| 最近记录: |