Javascript 添加图形管理器后丢失绑定事件

Javascript 添加图形管理器后丢失绑定事件,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,当我将DrawingManager功能添加到谷歌地图时,我遇到了一个问题。当我调用下面的drawingManager.setMap(map)时,我丢失了在createMap函数底部添加的click事件。当我注释掉drawingManager.setMap(map)时,我的单击事件工作正常。我在文档中找不到任何可以解释这种行为的内容,但我肯定错过了一个步骤或者做错了什么 下面是我正在使用的代码的基本版本: function createMap() { window.center = new g

当我将
DrawingManager
功能添加到谷歌地图时,我遇到了一个问题。当我调用下面的
drawingManager.setMap(map)
时,我丢失了在
createMap
函数底部添加的click事件。当我注释掉drawingManager.setMap(map)时,我的单击事件工作正常。我在文档中找不到任何可以解释这种行为的内容,但我肯定错过了一个步骤或者做错了什么

下面是我正在使用的代码的基本版本:

function createMap() {
  window.center = new google.maps.LatLng(latitude, longitude);

  var mapOptions = {
    zoom: zoom,
    center: center,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  window.map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

  window.drawingManager = new google.maps.drawing.DrawingManager({                 
    drawingMode: google.maps.drawing.OverlayType.MARKER,                        
    drawingControl: true,                                                       
    drawingControlOptions: {                                                    
      position: google.maps.ControlPosition.TOP_CENTER,                         
      drawingModes: [                                                           
        google.maps.drawing.OverlayType.POLYGON                                 
      ]                                                                         
    },                                                                          
    circleOptions: {                                                            
      fillColor: '#ffff00',                                                     
      fillOpacity: 1,                                                           
      strokeWeight: 5,                                                          
      clickable: true,                                                         
      editable: true,                                                           
      zIndex: 1                                                                 
    }                                                                           
  });                                                                           

  window.drawingManager.setMap(window.map);                                                   

  google.maps.event.addListener(window.map, 'click', function(event){
    console.log('clicked!');
  });

}
这里是运行
drawingManager.setMap(map)
的损坏版本:

没有
drawingManager.setMap(map)
,控制台会正确记录来自侦听器的“单击”:


看起来图形管理器正在使用单击事件。如果在不使用它时禁用它,则单击事件将再次工作。这可能是意料之中的,我不知道它记录在哪里。

发现了问题。替换:

drawingMode: google.maps.drawing.OverlayType.MARKER
与:

新手犯的错误

drawingMode: google.maps.drawing.OverlayType.POLYGON