使用不同的按钮加载两个不同的geojson文件

时间:2017-10-18 11:52:02

标签: javascript json geojson

我正在制作一个包含两条不同折线的谷歌地图。一个文件只有一个,另一个文件有四个。 我使用vm.loadDiggit('js/file/diggitOne.geojson')制作按钮,使用vm.loadDiggit('js/file/diggitTwo.geojson')制作另一个按钮。

他们看起来像这样:

<a class="btn btn green" ng-click="vm.loadDiggit('js/lib/diggitOne.geojson')"> Diggit one</a> <a class="btn btn green" ng-click="vm.loadDiggit('js/lib/diggitTwo.geojson')">Diggit two</a>

在我的javascript文件中,我使用此函数加载它们:

vm.loadDiggit = function(filename){
  var promise = $.getJSON(filename);
    promise.then(function(data){
      cachedGeoJson = data;
      map.data.addGeoJson(cachedGeoJson);
    })
}

到目前为止这种方法有效,但是当我多次按下按钮时,另一层上会有越来越多的图层。那么如何在两个文件之间轻松切换?

1 个答案:

答案 0 :(得分:0)

这将有助于您在添加新数据之前清除所有数据。

map.data.forEach(function(feature) {
    map.data.remove(feature);
});

所以这将是你的新代码:

vm.loadDiggit = function(filename){
  var promise = $.getJSON(filename);
    promise.then(function(data){
      cachedGeoJson = data;
      map.data.forEach(function(feature) {
        map.data.remove(feature);
      });
      map.data.addGeoJson(cachedGeoJson);
    })
}