2015-01-20 1 views
3

Пожалуйста, проверьте эту скрипку, http://jsfiddle.net/HoffZ/Zu55b/drawingManager.setDrawingMode (нуль), что вызывает слишком много рекурсии

Почему это вызывает ошибку «слишком много рекурсии» на 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

https://code.google.com/p/gmaps-api-issues/issues/detail?id=7548 – geocodezip

ответ

4

Должен признаться, что я не совсем понимаю, почему это происходит.

Но следующий код, кажется, работает:

google.maps.event.addListener(drawMan, 'overlaycomplete', function (event) { 

    if (drawMan.getDrawingMode()) { 

     drawMan.setDrawingMode(null); 
    }   
}); 
+1

Запахи google-bug. Это происходит на «overlaycomplete» для Polygon, но не для Rectangle. – glance

+0

Хороший улов. Возможно, это будет ошибка. – MrUpsidown

+0

Имейте в виду, что drawMan.setDrawingMode (null); вызовет overlaycomplete, polygoncomplete 2-й раз. – scx

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); 
}); 
+0

Это происходит, но только когда внутри прослушивателя событий «overlaycomplete». – MrUpsidown

-1

Этот код работает для меня, но это ошибка Google.

if (drawManager.drawingMode) { 
 
    drawManager.setDrawingMode(null); 
 
}

0

вопрос с 3.exp. Теперь переключите его на 3.8, и проблема будет решена.

Смежные вопросы