在观看之后从之前的addGeoJson(scope.data)中清除谷歌地图

IOR*_*R88 2 javascript google-maps geojson angularjs

我想将google-maps与angular.js同步,因此我为google-maps创建了自定义指令.

 var map;
 map = new google.maps.Map(document.getElementById('map'),
     mapOptions);


 scope.$watch('geojson', function(newVal, oldVal) {
     if (newVal !== oldVal) {


         map.data.setMap(null);
         map = new google.maps.Map(document.getElementById('map'),
             mapOptions);
         map.data.addGeoJson(scope.geojson);
     }
 }, true);
Run Code Online (Sandbox Code Playgroud)

我的解决方案有效,但它不是我想要实现的,当数据发生变化时,每次使用新的scope.geojson加载map,遗憾的是我找不到任何好的解决方案如何删除数据,我认为没有将geojson数据添加为图层的一些选项?然后在添加新的geojson之前清除此图层,这样map将是稳定的,只有geojson数据会改变?

iH8*_*iH8 7

使用类的forEach方法data循环遍历功能并使用以下remove方法删除它们:

map.data.forEach(function (feature) {
    map.data.remove(feature);
});
Run Code Online (Sandbox Code Playgroud)

data参考:https://developers.google.com/maps/documentation/javascript/reference#Data