谷歌地图v2界限改变事件

时间:2010-02-09 12:12:26

标签: api google-maps

我在我的网络应用程序中使用谷歌地图v2。我希望在由于缩放或拖动而改变地图边界时调用数据库来获取记录。到目前为止,我正在使用tilesloaded事件处理程序来执行此操作,假设在加载所有切片时地图边界将发生变化(我也希望澄清此假设)。

当我放大/缩小并处理zoomend事件时,设置一个在tilesloaded事件处理程序中检查的标志,然后使用新的边界查询数据库。只要在zoomend事件后触发tilesloaded事件,这就可以正常工作。但是(令人讨厌的是)很多次它在游戏事件之前被解雇,所以在这种情况下,不会在tilesloaded事件处理程序中设置缩放标志,也不会发生数据库调用。

拖拽也是如此。而且当我们拖动地图时,很多次tileloaded事件都没有被触发。如果我们只拖一点(只是一个疯狂的猜测)谷歌会使用任何缓存机制的地图图块。

我想要为v2触发类似于bounds_changed事件的东西,请有人帮助我。

1 个答案:

答案 0 :(得分:2)

我会使用moveend事件。无论何时缩放或移动地图(在鼠标上),它都会触发。

var moveListener = GEvent.addListener(map, "moveend", function() {
    var bounds = map.getBounds();
    var sw = bounds.getSouthWest();
    var ne = bounds.getNorthEast();

    var sBound = sw.lat();
    var wBound = sw.lng();
    var nBound = ne.lat();
    var eBound = ne.lng();

    // AJAX call to the database with the map bounds
});