Javascript Google Maps Api v3 DrawingManager-不使用drawingControl启动绘图

Javascript Google Maps Api v3 DrawingManager-不使用drawingControl启动绘图,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我正在用谷歌地图api v3构建一个地理围栏api。我从MapToolbar代码开始: 我喜欢它,因为它很容易定制,比如更改图标和调用函数的所有方式。我只使用多边形工具,我不喜欢这样一个事实,即当你添加一个点时,你不能做凸角,只有当你编辑它之后 如果使用drawingManager工具,则可以执行此操作,因为多边形仅在完成图形后创建: 但是我不喜欢默认图标,我认为调用函数的方式并不是真正的用户友好。问题是我不能自己调用函数 因此,我正在寻找一种不使用默认绘图控件就开始绘图的方法,就像调用正确

我正在用谷歌地图api v3构建一个地理围栏api。我从MapToolbar代码开始:

我喜欢它,因为它很容易定制,比如更改图标和调用函数的所有方式。我只使用多边形工具,我不喜欢这样一个事实,即当你添加一个点时,你不能做凸角,只有当你编辑它之后

如果使用drawingManager工具,则可以执行此操作,因为多边形仅在完成图形后创建:

但是我不喜欢默认图标,我认为调用函数的方式并不是真正的用户友好。问题是我不能自己调用函数


因此,我正在寻找一种不使用默认绘图控件就开始绘图的方法,就像调用正确的函数一样简单,但我找不到它!或者我可以用同样的方法创建多边形,而不用drawingManager。请帮帮我

我找到了!如果要隐藏控制菜单,请使用drawingControl:false;如果要更改绘图模式,请使用setDrawingMode,如下所述:

这是从多边形绘制模式开始的新代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Drawing tools</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <style>
      html, body, #map-canvas {
        height: 100%;
        margin: 0px;
        padding: 0px
      }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=drawing"></script>
    <script>

// ColorLuminance() is a little extra to have your strokeColor
// darker than your fillColor

function ColorLuminance(hex, lum) {

    // validate hex string
    hex = String(hex).replace(/[^0-9a-f]/gi, '');
    if (hex.length < 6) {
        hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];
    }
    lum = lum || 0;

    // convert to decimal and change luminosity
    var rgb = "#", c, i;
    for (i = 0; i < 3; i++) {
        c = parseInt(hex.substr(i*2,2), 16);
        c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);
        rgb += ("00"+c).substr(c.length);
    }

    return rgb;
}

function initialize() {
  var mapOptions = {
    center: new google.maps.LatLng(-34.397, 150.644),
    zoom: 8
  };

  var map = new google.maps.Map(document.getElementById('map-canvas'),
    mapOptions);

  var drawingManager = new google.maps.drawing.DrawingManager({
    drawingMode: google.maps.drawing.OverlayType.POLYGON,
    drawingControl: false,
    polygonOptions: {
      strokeWeight: 2,
      strokeColor: ColorLuminance("#FF0000", -0.6),
      strokeOpacity: 0.9,
      fillColor: "#FF0000",
      fillOpacity: 0.3
    }
  });
  drawingManager.setMap(map);
}

google.maps.event.addDomListener(window, 'load', initialize);

    </script>
  </head>
  <body>
    <div id="map-canvas"></div>
  </body>
</html>