Javascript 谷歌地图API鼠标关闭在绘图模式下禁用?
我有一张谷歌地图,上面有矩形、圆形和多边形的绘图覆盖。一切都很酷,但我想在开始绘制新的(自动)覆盖层之前清除覆盖层 似乎没有任何方法可以通过现有的谷歌地图控件清除它,我不想为它创建一些自定义按钮Javascript 谷歌地图API鼠标关闭在绘图模式下禁用?,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我有一张谷歌地图,上面有矩形、圆形和多边形的绘图覆盖。一切都很酷,但我想在开始绘制新的(自动)覆盖层之前清除覆盖层 似乎没有任何方法可以通过现有的谷歌地图控件清除它,我不想为它创建一些自定义按钮 google.maps.event.addListener(this.map, 'mousedown', function(event) { console.log('map mousedown'); console.log(_this.drawingManager.getDrawing
google.maps.event.addListener(this.map, 'mousedown', function(event) {
console.log('map mousedown');
console.log(_this.drawingManager.getDrawingMode());
});
我试图在地图上发生mousedown
事件时清除地图。但当地图处于“绘图模式”时,似乎不会触发此事件。我也找不到任何关于绘图控件的任何类型的鼠标事件的文档
即使在绘图模式下(绘制圆形、矩形、多边形等),是否也有办法触发鼠标向下事件?据我所知,在绘图模式下没有办法触发地图上的鼠标向下事件,但我仍然认为有两种可能的方式供您选择: A.仅当您使用绘图管理器的自定义按钮时(意味着您在初始化
DrawingManager
时设置drawingControl:false
,并创建自己的按钮)。然后,当按下任何绘图按钮(例如用于绘制多段线的按钮)时,您可以侦听绘图完成时触发的事件,并将设置DrawingMode
设置为null,以确保用户必须再次单击其中一个图标以开始绘图,您可以在同一个单击侦听器中删除所有现有图形。例如(说明性的,取决于您的设置):
因此,此解决方案不需要地图上的任何其他按钮,只需要选择相应绘图工具(手动、多段线、圆等)所需的按钮
B.您无法侦听映射单击事件,但仍可以侦听包含映射的div上的单击事件。在这种情况下,您还可以利用overlycomplete
事件设置一些变量,指示绘图开始的时间。类似于在这个过程中所做的事情
$('#polylineButton').on('click', function(){
//delete any previous existing drawings on map
drawing_manager.setDrawingMode(google.maps.drawing.OverlayType.POLYGON);
google.maps.event.addListenerOnce(drawing_manager, 'overlaycomplete',function(polyline) {
drawing_manager.setDrawingMode(null); //set to hand cursor after overlay was drawn
..
}
...
});