我想将google-maps与angular.js同步,因此我为google-maps创建了自定义指令。
CODE
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);
我的解决方案有效,但它不是我想要实现的,当数据发生变化时,每次使用新的scope.geojson加载地图,遗憾的是我找不到任何好的解决方案如何删除数据,我假设没有一些选项可以将geojson数据添加为图层?然后在添加新的geojson之前清除这个图层,这样map会稳定,只有geojson数据会改变吗?
答案 0 :(得分:7)
使用forEach
类的data
方法循环使用这些功能,然后使用remove
方法将其删除:
map.data.forEach(function (feature) {
map.data.remove(feature);
});
data
参考:https://developers.google.com/maps/documentation/javascript/reference#Data