Google maps api 3 自定义绘图控件[Google Maps v3绘图库]

Google maps api 3 自定义绘图控件[Google Maps v3绘图库],google-maps-api-3,drawing,Google Maps Api 3,Drawing,我正在使用GoogleMapsAPI的绘图库,我想用一个自定义按钮触发标记的绘图 我已经阅读了文档的这一部分: 隐藏绘图控件会导致绘图工具控件不显示,但DrawingManager类的所有功能仍然可用。通过这种方式,如果需要,您可以实现自己的控制。从地图对象中删除DrawingManager将禁用所有绘图功能;如果要恢复图形特征,则必须使用drawingManager.setMap(map)或构造的新drawingManager对象将其重新附着到地图 但是我找不到如何使用DrawingManag

我正在使用GoogleMapsAPI的绘图库,我想用一个自定义按钮触发标记的绘图

我已经阅读了文档的这一部分:

隐藏绘图控件会导致绘图工具控件不显示,但DrawingManager类的所有功能仍然可用。通过这种方式,如果需要,您可以实现自己的控制。从地图对象中删除DrawingManager将禁用所有绘图功能;如果要恢复图形特征,则必须使用drawingManager.setMap(map)或构造的新drawingManager对象将其重新附着到地图

但是我找不到如何使用DrawingManager来执行此操作。

单击按钮:

启用图形标记: drawingManager.setDrawingMode(google.maps.drawing.overlytype.MARKER)

关闭: drawingManager.setDrawingMode(空)

您可以:

  • 创建一个没有控件或省略某些控件的DrawingManager,然后
  • 为它们添加自定义按钮,然后
  • 向这些按钮添加处理程序以触发@user1226919提到的函数
  • 例如:

    var drawingManager = new google.maps.drawing.DrawingManager({
        drawingControl: false
    });
    drawingManager.setMap(map);
    
    // drawingManager is now ready
    
    var marker_btn = document.createElement("button");
    marker_btn.innerHTML = "Create Marker";
    
    // add handlers
    marker_btn.addEventListener("click", (function () {
        // closure handles local toggle variables
        var toggled = false;
        var originalHTML = marker_btn.innerHTML;
        return function (e) {
            if (toggled) {
                drawingManager.setDrawingMode(null);
                e.target.innerHTML = originalHTML;
            } else {
                drawingManager.setDrawingMode(google.maps.drawing.OverlayType.MARKER);
                e.target.innerHTML = "Cancel";
            }
            toggled = !toggled;
        }
    })());
    
    // add button to map controls
    map.controls[ google.maps.ControlPosition.TOP_CENTER ].push( marker_btn );
    

    查看一个使用自定义多边形按钮的工作示例:

    谢谢,这就是我要找的;-)同样适用于,overlytype.CIRCLE,overlytype.POLYGONI,喜欢这个答案,因为小提琴非常好用