我在moveend上添加了一个由ol.source.GeoJSON请求的源的图层。如果在请求完成之前再次平移地图,我该如何中止待处理的ajax请求?
map.on('moveend', function(){
map.removeLayer(highlightedLayer);
var theSource = new ol.source.GeoJSON({
url: 'wfs.php?bbox='+bbox
});
var highlightedSource = new ol.source.GeoJSON({});
theSource.on('change', function(e){
if(theSource.getState() == 'ready'){
var features = theSource.getFeatures();
$.each(features, function(k,v){
if(v.n.filter == 'include'){
highlightedSource.addFeature(features[k]);
}
});
highlightedLayer.setSource(highlightedSource);
map.addLayer(highlightedLayer);
}
});
});
答案 0 :(得分:0)
不是直接在moveend添加图层,而是可以使用ajax(可以取消)获取GeoJson,并且在编译时使用对象参数而不是url添加geojson数据。
以下是GeoJSON源代码的文档: http://openlayers.org/en/v3.4.0/apidoc/ol.source.GeoJSON.html?unstable=true
以下是取消ajax请求的方式: Abort Ajax requests using jQuery
希望这会对你有所帮助。