我正在尝试允许用户使用 map.data 要素图层在 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);
});
}