请查看这个小提琴,http://jsfiddle.net/HoffZ/Zu55b/
为什么它会导致错误"过多的递归"在drawMan.setDrawingMode(null)
drawMan.setDrawingMode(google.maps.drawing.OverlayType.POLYGON);
google.maps.event.addListener(drawMan, 'overlaycomplete', function (event) {
// When draw mode is set to null you can edit the polygon you just drawed
drawMan.setDrawingMode(null);
});
这不是我的小提琴,但我在我的代码中遇到了这个问题
答案 0 :(得分:4)
我必须承认,我不太明白为什么会这样。
但以下代码似乎有效:
google.maps.event.addListener(drawMan, 'overlaycomplete', function (event) {
if (drawMan.getDrawingMode()) {
drawMan.setDrawingMode(null);
}
});
答案 1 :(得分:0)
看起来像个错误。 setDrawingMode
函数似乎触发了overlaycomplete
侦听器。今天才开始发生在我身上。
MrUpsidown的回答实际上是第二次触发overlaycomplete
。除非您需要继续倾听事件,否则您应该清除它。
drawMan.setDrawingMode(google.maps.drawing.OverlayType.POLYGON);
google.maps.event.addListener(drawMan, 'overlaycomplete', function (event) {
google.maps.event.clearListener(drawMan, 'overlaycomplete');
drawMan.setDrawingMode(null);
});
答案 2 :(得分:0)
问题在于3.exp。现在将其切换到3.8,问题将得到解决。
答案 3 :(得分:-1)
此代码适用于我,但这是google bug。
if (drawManager.drawingMode) {
drawManager.setDrawingMode(null);
}