在观看后清除之前添加的GeoJson(scope.data)中的谷歌地图
Clear google map from previously addGeoJson(scope.data) after watch
我想将谷歌地图与angular.js同步,所以我为谷歌地图创建了自定义指令。
代码
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加载map,不幸的是,我找不到任何好的解决方案。如何只删除数据,我想没有一些选项可以添加geojson数据作为层?然后在添加新的geojson之前清除这一层,这样map就稳定了,只有geojson数据会改变吗?
使用data
类的forEach
方法循环遍历特征,并使用remove
方法删除它们:
map.data.forEach(function (feature) {
map.data.remove(feature);
});
data
参考:https://developers.google.com/maps/documentation/javascript/reference#Data
相关文章:
- AngularJS:ng之后,重复$scope值未按预期更新
- $ionicplatform内的$scope不;不起作用
- 使用$scope方法时的ControllerAs语法
- 如何将ngrepeat下的ngmodel绑定到$scope
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 如何使用传单pip插件与纯GeoJSON数据
- 使用AJAX调用将GeoJSON数据拉入传单
- $scope变量被视为字符串AngularJs
- ng在更新$scope后重复不更新信息
- 正在获取Angular以检测$scope中的更改
- 如何惯用地手动销毁scope&在AngularJS中重新创建
- Understanding Javascript scope with "var that = this&qu
- AngularJS,angular.element($0).scope()揭示了每个控制器的函数
- Ng出口无法访问父$scope
- ng选项-用vm替换$scope
- $scope变量,ng隐藏/显示
- Mapbox JS,来自URL的GeoJSON featureCollection对象只添加了一个标记
- 强制 $scope.$watch 只开火一次
- 在观看后清除之前添加的GeoJson(scope.data)中的谷歌地图