如何删除新创建的矩形而不删除谷歌地图中的前一个矩形

时间:2015-08-28 06:08:38

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

我使用谷歌地图创建了一个简单的地图应用程序(绘制矩形)。我有一个Save按钮,当我绘制一个矩形时,我保存了它的坐标。我也有Clear按钮,只能清除未保存的矩形。如何使用“清除”按钮,我只删除新创建的矩形?我使用“rectangle.setMap(null)”,但它似乎删除了所有矩形(包括保存的矩形)。任何帮助都会很棒!

感谢。

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 10.487, lng: 123.975},
    zoom: 8,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });

  var drawingManager = new google.maps.drawing.DrawingManager({
      drawingControl: true,
      drawingControlOptions: {
        position: google.maps.ControlPosition.TOP_CENTER,
        drawingModes: [google.maps.drawing.OverlayType.RECTANGLE]
      },
      rectangleOptions: {
          fillColor: '#00FF00',
          strokeColor: "red",
          strokeWeight: 2,
          clickable: true,
          editable: true,
          draggable:true,
          zIndex: 1,
      }

  });

  drawingManager.setMap(map);

  
  google.maps.event.addListener(drawingManager, 'rectanglecomplete', function(rectangle) {
    drawingManager.setDrawingMode(null);

    drawingManager.setOptions({
      drawingControl: false //after drawing you cannot draw again, so you have to save it first
    });

    $("#btnSave").on('click', function(){
      drawingManager.setOptions({
        drawingControl: true
      });
    });

    $("#btnClear").on('click', function(){ //when clicking Clear the saved rectangle must not be removed, only the newly created/unsaved rects
      rectangle.setMap(null); //
      drawingManager.setOptions({
        drawingControl: true
      });
    });


    document.getElementById("north_east").value = rectangle.getBounds().getNorthEast();
    document.getElementById("south_west").value = rectangle.getBounds().getSouthWest();

    
  });
}

0 个答案:

没有答案