在Google Maps api v3中完成多边形绘制时的句柄

时间:2012-03-24 09:05:41

标签: javascript google-maps dom google-maps-api-3 rendering

似乎在google maps api v3中绘制多边形是异步的。尝试单击此示例中的“加载”按钮:

http://jsfiddle.net/rmXXF/

文本“完成”的写入比网格绘制的要快得多!看起来矩形网格的绘制是异步的。 我希望在绘制网格后显示DONE文字!是否有一些事件处理程序?

代码的重要部分是函数action()

polygons = draw_all_squares(map); // draw grid here
document.getElementById('status').innerHTML = 'DONE'; // displayed 2 seconds
                                                      // before the grid! 

请注意,地图'idle'事件不适用于此,因为地图未移动/缩放。你可以试试这里: http://jsfiddle.net/92Hxj/

也许它与谷歌地图有关但有浏览器渲染?在任何情况下,都应该存在一些事件处理程序。

2 个答案:

答案 0 :(得分:8)

通过在绘制所有多边形后触发地图的小重新映射,这将添加到相同的内部Google地图事件队列中,如下例所示:http://jsfiddle.net/rmXXF/40/

google.maps.event.addListener(map, 'idle', function() {
 document.getElementById('status').innerHTML = 'DONE';
});

my_map.setCenter(new google.maps.LatLng(my_map.getCenter().lat(), my_map.getCenter().lng() + .000000001));

答案 1 :(得分:3)

你应该使用叠加层并听取绘图管理器的'rectanglecomplete'事件。我可以在午餐后编写一个例子。

大卫是对的。我误读了文档。道歉。他应该得到赏金。