OpenLayers 3 - 如何中止挂起的ajax请求 - ol.source.GeoJSON

时间:2015-04-10 01:31:14

标签: openlayers-3

我在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);
                    }
            });
    });

1 个答案:

答案 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

希望这会对你有所帮助。