默认情况下如何更改绘图管理器选择选项?

时间:2013-02-17 12:27:44

标签: javascript google-maps-api-3 drawing

我使用google.maps.drawing.DrawingManager似乎:

drawingManager = new google.maps.drawing.DrawingManager({
    drawingMode: google.maps.drawing.OverlayType.MARKER,
    markerOptions: {
        draggable: true,
        optimized: false,
        icon: new google.maps.MarkerImage('uxt/images/ap_gif.gif')
    },
    drawingControlOptions: {
        position: google.maps.ControlPosition.TOP_CENTER,
        drawingModes: [
        google.maps.drawing.OverlayType.MARKER,
        google.maps.drawing.OverlayType.POLYGON
        ]
    },

    polygonOptions: {
        fillColor: '#1E90FF',
        strokeWeight: 0,
        fillOpacity: 0.3,
        editable: true
    },
    map: mapA
});

所以我的工具栏看起来像: enter image description here

正如您在默认情况下看到的那样(页面重新加载后)标记被选中但我需要"手" ('停止绘图')被选中。 enter image description here

如何配置drawingManager来实现这个目标?

谢谢。

2 个答案:

答案 0 :(得分:21)

只需将选项中的drawingMode设置为null

drawingManager = new google.maps.drawing.DrawingManager({
    drawingMode: null,
    ...

答案 1 :(得分:0)

请检查以下代码。如果它不起作用,那么请查看这篇文章Google Maps API v3: Drawing Manager这可能会有所帮助

  var markers = [];
  var infowindow = new google.maps.InfoWindow();

  function initialize() {
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    drawingManager.setMap(map);
    google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) {
      if(event.type == google.maps.drawing.OverlayType.POLYLINE) {
        alert("polyline complete");
      }
      else if(event.type == google.maps.drawing.OverlayType.MARKER) {
        var newMarker = event.overlay;
        newMarker.content = "marker #" + markers.length;
        google.maps.event.addListener(newMarker, 'click', function() {
          infowindow.setContent(this.content);
          infowindow.open(map, this);
        });
        markers.push(newMarker);
      }
    });
  }