似乎在google maps api v3中绘制多边形是异步的。尝试单击此示例中的“加载”按钮:
文本“完成”的写入比网格绘制的要快得多!看起来矩形网格的绘制是异步的。 我希望在绘制网格后显示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/
也许它与谷歌地图有关但有浏览器渲染?在任何情况下,都应该存在一些事件处理程序。
答案 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'事件。我可以在午餐后编写一个例子。
大卫是对的。我误读了文档。道歉。他应该得到赏金。