Reactjs 谷歌地图绘制管理器:如何删除创建的形状(例如圆形)?

Reactjs 谷歌地图绘制管理器:如何删除创建的形状(例如圆形)?,reactjs,Reactjs,如何在谷歌地图DrawingManager中删除已创建的形状 <DrawingManager // defaultDrawingMode={google.maps.drawing.OverlayType.} defaultOptions={{ drawingControl: true, drawingControlOptions: { position: google.m

如何在谷歌地图
DrawingManager
中删除已创建的形状

  <DrawingManager
          // defaultDrawingMode={google.maps.drawing.OverlayType.}
          defaultOptions={{
            drawingControl: true,
            drawingControlOptions: {
              position: google.maps.ControlPosition.TOP_CENTER,
              drawingModes: [
                google.maps.drawing.OverlayType.CIRCLE,
                google.maps.drawing.OverlayType.POLYGON,
                // google.maps.drawing.OverlayType.POLYLINE,
                // google.maps.drawing.OverlayType.RECTANGLE,
              ],
            },
            circleOptions: {
              strokeColor: '#FF0000',
              strokeOpacity: 0.8,
              strokeWeight: 2,
              fillColor: '#FF0000',
              fillOpacity: 0.35,
              draggable: true,
              editable: true,
            },
            polygonOptions: {
              strokeColor: '#FF0000',
              strokeOpacity: 1.0,
              strokeWeight: 3,
              fillColor: '#FF0000',
              fillOpacity: 0.3,
              draggable: true,
              editable: true,
            },
          }}
          onOverlayComplete={this.handleOverlayComplete}
        />

当通过绘图管理器(谷歌地图)创建一个形状时,在创建它之后,我想删除那个形状,但在那个形状上我遇到了困难。
ReactJS

要操作绘制的形状,可以考虑以下方法:

引入
形状
变量以保留对绘制形状的引用:

class Map extends Component {
  constructor(props) {
    super(props);
    this.shapes = [];
  }

  //...
}
触发
overlycomplete
事件后,保存绘制的形状:

handleOverlayComplete(e) {
    const shape = e.overlay;
    shape.type = e.type;
    google.maps.event.addListener(shape, "click", () => {
      this.toggleSelection(shape);
    });
    this.toggleSelection(shape);
    this.shapes.push(shape)
}
最后,可以从地图中删除绘制的形状,如下所示:

deleteShapes() {
   this.state.shapes.forEach(shape => shape.setMap(null));
}
供参考

注意:在提供的演示中删除形状:

  • 通过单击手动光标按钮选择停止绘图模式
  • 单击贴图(形状的外部边界)

我建议在你的问题中加入一些代码。这将增加您获得答案的机会,并减少您的问题被标记和关闭的机会。@acarlstein,对不起,忘记添加代码了。这是一个组件,用于在地图上绘制圆形和多边形等形状,但在绘制完这些形状后,我想删除它们,我是react的新手,我看到了一些不起作用的例子。是的,这一个删除了所有的形状,但是我如何才能使它只删除一个形状?