Javascript 在地图上绘制多边形时如何删除覆盖?

Javascript 在地图上绘制多边形时如何删除覆盖?,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,当我选中它在地图上绘制的多边形时,我在地图上有多个多边形,在侧菜单上有多边形列表。当我选中其他多边形时,它会创建其他多边形,但问题是当我选中每个新多边形时,它会覆盖旧多边形。我试图在创建新多边形之前将多边形设置为空,但它不起作用。希望你能理解我的问题 $.ajax({ url:“{route('ucs.active')}}”, 方法:“张贴”, 数据:{id':id,'is_active':is_active,“_token”:“{{csrf_token()}}”, 成功:功能(响应){ 设l

当我选中它在地图上绘制的多边形时,我在地图上有多个多边形,在侧菜单上有多边形列表。当我选中其他多边形时,它会创建其他多边形,但问题是当我选中每个新多边形时,它会覆盖旧多边形。我试图在创建新多边形之前将多边形设置为空,但它不起作用。希望你能理解我的问题

$.ajax({
url:“{route('ucs.active')}}”,
方法:“张贴”,
数据:{id':id,'is_active':is_active,“_token”:“{{csrf_token()}}”,
成功:功能(响应){
设latLong=response.zones;
让地图;
设多边形=[];
让driverLat=latLong.map(({
拉图朗
})=>拉图(长)
让color=latLong.map(({
颜色
})=>颜色)
for(设i=0;i0){
多边形。setMap(空);
}
多边形=新的google.maps.Polygon({
可编辑:false,
路径:arrayCoords,
strokeColor:color[i],
笔划不透明度:0.8,
冲程重量:2,
fillColor:color[i],
不透明度:0.35,
地图:地图,
可拖动:错误,
测地线:正确,
});
}
} 

单击“其他”复选框时,在创建其他多边形之前,需要将google.maps.drawing.DrawingManager类中的DrawingMode设置为null

  private _drawingManager: google.maps.drawing.DrawingManager;
  private _drawingOptions: google.maps.drawing.DrawingManagerOptions;

  this._drawingOptions = {
      drawingMode: google.maps.drawing.OverlayType.POLYGON,
      drawingControl: false,
      drawingControlOptions: {
        position: google.maps.ControlPosition.TOP_CENTER,
        drawingModes: [
   
          google.maps.drawing.OverlayType.POLYGON
        
        ]
      }
    };

    const dm = new google.maps.drawing.DrawingManager(this._drawingOptions);
    this._drawingManager = dm;

完成多边形后,需要将绘图模式设置为null:

google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) {
    if (event.type == google.maps.drawing.OverlayType.POLYGON) {
        if(polygon != null)
            polygon.setMap(null);
        polygon = event.overlay;
        var bounds = polygon.getBounds();
        drawingManager.setDrawingMode(null);
    }
});

如果有帮助,请告诉我。谢谢!!

我正在将其设置为空,正如您在我的问题中所看到的。我必须在我的问题中更改的位置?我编辑了我的答案。您需要将其添加到OverlyComplete事件的侦听器中。您可以编辑我的问题吗?这样我就可以轻松理解了。请提供一个示例来说明您的问题。@geocodezip我发布了该comp删除ajax请求。我没有得到解决方案,为什么它会覆盖在获取新响应上。请提供一个示例来说明问题,您需要提供
response
的值(或者至少提供一个您已证明有效的测试版本)@geocodezip我在问题中添加了回应。图片不是很有用。请提供一个演示该问题的示例(或者至少提供足够的信息,我可以创建一个有机会展示该问题的示例)。
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) {
    if (event.type == google.maps.drawing.OverlayType.POLYGON) {
        if(polygon != null)
            polygon.setMap(null);
        polygon = event.overlay;
        var bounds = polygon.getBounds();
        drawingManager.setDrawingMode(null);
    }
});