Javascript Google Maps JS API-getBounds()不总是定义的

Javascript Google Maps JS API-getBounds()不总是定义的,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我正在使用GoogleMapsJavaScriptAPI渲染地图并在地图上显示一组位置标记。为了减少通过获取位置的AJAX请求返回的数据量,我将在请求中发送边界框的坐标,以仅返回可见的位置 我目前拥有如下代码: google.maps.event.addListener(Map.map, "bounds_changed", function() { Map.bounds.north = Map.map.getBounds().getNorthEast().lat(); Map.bound

我正在使用GoogleMapsJavaScriptAPI渲染地图并在地图上显示一组位置标记。为了减少通过获取位置的AJAX请求返回的数据量,我将在请求中发送边界框的坐标,以仅返回可见的位置

我目前拥有如下代码:

google.maps.event.addListener(Map.map, "bounds_changed", function() {
  Map.bounds.north = Map.map.getBounds().getNorthEast().lat();
  Map.bounds.east  = Map.map.getBounds().getNorthEast().lng();
  Map.bounds.south = Map.map.getBounds().getSouthWest().lat();
  Map.bounds.west  = Map.map.getBounds().getSouthWest().lng();
  });
据我所知,
getBounds
的工作原理应该是在移动地图时更新
Map.bounds
(它被发送到服务器以检索数据)。但是,我无法让它在创建地图时设置
Map.bounds
,因此初始位置请求失败。如果我在
google.maps.event.addListener
之外调用
Map.Map.getBounds
,我会得到一个错误,
getBounds
未定义。在用户与地图交互之前,如何在地图加载后设置边界


(我还尝试了
“idle”
以及
“bounds\u changed”
,结果相同)

谷歌地图Javascript API是基于事件的。如果在第一个
bounds\u changed
事件触发之前调用映射上的getBounds,则它将不起作用。第一次设置后的任何时间都可以使用

例如:

var映射;
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
中心:{
拉脱维亚:42,
液化天然气:-72
},
缩放:8
});
}
google.maps.event.addDomListener(窗口'load',initMap)
html,
身体,
#地图{
身高:100%;
宽度:100%;
}


请提供一个演示您的问题的示例。您发布的代码不应该失败。我发布的代码确实有效,这就是我发布它的原因,它是唯一有效的实例。在任何其他上下文中使用getBounds函数都会导致一个错误,即该函数未定义(但仍在GoogleMaps回调中)。与其说我要求对我的代码进行更正,不如说我要求在这个具体案例之外使用getBounds,这对我来说并不清楚。举一个例子,说明你尝试过但没有成功,你认为应该成功,这会很有帮助。