观看后清除之前 addGeoJson(scope.data) 中的 google 地图
Clear google map from previously addGeoJson(scope.data) after watch
我想将 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);
我的解决方案有效,但这不是我想要实现的,当数据发生变化时,地图每次都会加载新的 scope.geojson,不幸的是我找不到任何好的解决方案如何删除数据,我假设没有一些选项可以将 geojson 数据添加为图层?然后在添加新的geojson之前清除这一层,这样地图就会稳定,只有geojson数据会改变?
使用data
的forEach
方法class循环特征,使用remove
方法移除特征:
map.data.forEach(function (feature) {
map.data.remove(feature);
});
data
参考:https://developers.google.com/maps/documentation/javascript/reference#Data
我想将 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);
我的解决方案有效,但这不是我想要实现的,当数据发生变化时,地图每次都会加载新的 scope.geojson,不幸的是我找不到任何好的解决方案如何删除数据,我假设没有一些选项可以将 geojson 数据添加为图层?然后在添加新的geojson之前清除这一层,这样地图就会稳定,只有geojson数据会改变?
使用data
的forEach
方法class循环特征,使用remove
方法移除特征:
map.data.forEach(function (feature) {
map.data.remove(feature);
});
data
参考:https://developers.google.com/maps/documentation/javascript/reference#Data