Google maps api 3 Google Maps数据层功能在第一次功能删除后未呈现

Google maps api 3 Google Maps数据层功能在第一次功能删除后未呈现,google-maps-api-3,data-layer,Google Maps Api 3,Data Layer,我正在尝试允许用户使用map.data features图层在Google地图中绘制形状。一旦用户完成绘制,我想处理他们刚刚绘制的形状的坐标,然后立即将其从地图中删除。第一个形状可以很好地删除,但在第一个形状之后,它们仍然会处理并清空对象(通过使用map.data.toGeoJson将其记录到控制台进行测试,在控制台中显示map.data对象,但不显示任何功能),但它们仍然在地图上可见 var map; function initMap() { map = new google.maps.

我正在尝试允许用户使用map.data features图层在Google地图中绘制形状。一旦用户完成绘制,我想处理他们刚刚绘制的形状的坐标,然后立即将其从地图中删除。第一个形状可以很好地删除,但在第一个形状之后,它们仍然会处理并清空对象(通过使用map.data.toGeoJson将其记录到控制台进行测试,在控制台中显示map.data对象,但不显示任何功能),但它们仍然在地图上可见

var map;

function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {
      lat: -34.397,
      lng: 150.644
    },
    zoom: 8
  });

  map.data.setControls(['Point', 'LineString', 'Polygon']);

  map.data.addListener('addfeature', function(event) {
    event.feature.getGeometry().forEachLatLng(function(latLng) {
      //do stuff with the feature
    });

    map.data.remove(event.feature);
  });
}
要查看发生了什么,请在“小提琴”中绘制一个多边形,并在完成时(双击)它将消失,因为它在处理后被删除(这是应该发生的)。但是,当绘制第二个或更多多边形时,它们在地图上保持可见

var map;

function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {
      lat: -34.397,
      lng: 150.644
    },
    zoom: 8
  });

  map.data.setControls(['Point', 'LineString', 'Polygon']);

  map.data.addListener('addfeature', function(event) {
    event.feature.getGeometry().forEachLatLng(function(latLng) {
      //do stuff with the feature
    });

    map.data.remove(event.feature);
  });
}

小提琴:

这是一种奇怪的行为,可能是一个bug。作为解决方法,您可以使用。下面是一个使用的示例。这与使用
google.maps.Data
类绘制非常相似

var映射;
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
中心:{
lat:-34.397,
液化天然气:150.644
},
缩放:8
});
var drawingManager=new google.maps.drawing.drawingManager({
drawingControlOptions:{
绘图模式:[“标记”、“多边形”、“多段线”]
},
多克隆选择:{
是的,
真的,
strokeColor:“红色”
}
});
drawingManager.setMap(map);
google.maps.event.addListener(drawingManager,'polygoncomplete',函数(多边形){
polygon.getPath().getArray().forEach(函数(latLng){
//用这个功能做一些事情
});
polygon.setMap(空);
});
}
#地图{
身高:100%;
}
html,
身体{
身高:100%;
保证金:0;
填充:0;
}

谢谢,我认为这是一个bug,但通常我认为我只是在做一些愚蠢的事情。谢谢你花时间看它。