2011年11月29日星期二

Google Maps JavaScript API 几种事件(event)的说明

当移动或放大缩小google maps时,将会产生zoom_changed、center_changed、bounds_changed、dragend等各种事件。通过下面的html代码可以测试这些事件何时发生,以及发生的先后顺序。

运行html文件后可得出下面的结论:

  1. 当移动地图时,center_changed和bounds_changed事件会不断触发,一直到移动结束。所以如果需要在视图改变时利用Ajax方式获取数据时千万不要绑定到bounds_changed(或center_changed)事件,因为这样会在移动一次地图时触发多次bounds_changed事件,导致多次重复的Ajax请求

  2. 事件触发的顺序 center_changed -- zoom_changed -- bounds_changed , 当center_changed事件发生时不一定能正确通过getBounds()函数获取视图边界

  3. dragend事件在拖动结束时触发,此时由于地图可能还在移动,所以还可能继续触发center_changed和bounds_changed事件







Google Maps JavaScript API v3 Example: Event Simple

















1 条评论:

  1. 我给一个自定义的点添加了'dragend'事件,移动以后我弹出确定移动还是否,确定则移动,点取消则让点自动回来原来的位置,请问怎么实现

    回复删除