Openlayers-3 - 是否可以重新加载单层?

时间:2015-10-07 20:31:50

标签: openlayers-3

正如标题所说。我希望能够重新加载地图上显示的图层。有没有办法(直接)这样做?

所以不是map.render()或map.renderSync(),因为这些渲染只会在滚动或更改视图后更改视图。

1 个答案:

答案 0 :(得分:0)

要重新加载geojson矢量图层,您必须先将其清除,然后再按照您在第一时间所做的相同操作:加载de layer并设置图层来源:

vectorLayerSource.clear();
loadVectorLayer(url);

加载geojson图层的步骤取决于你的配置,假设你在外部geojson文件中有它,你可以这样做(使用jquery):

function loadVectorLayer(url) {
  $.when(
    $.getJSON(url, {})   
    .done (function(data) { 
      var features = (new ol.format.GeoJSON()).readFeatures(data);
      vectorLayerSource.addFeatures(features);
    })  
    .fail(function(data) {    
      console.log("geojson error in "+url);  
    })
  ).then(function() { 
      console.log("geojson file "+url+" loaded");
  });
}