在矢量开放层上设置策略

时间:2015-10-19 12:38:01

标签: openlayers-3

在Openlayers 3.9.0中,我使用loader从Geoserver获取矢量图层。这是代码

var sourceVector = new ol.source.Vector({
    format: new ol.format.GeoJSON(),
    loader: function (extent) {
        $.ajax('http://localhost:5550/geoserver/mymap/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=mymap:mylayer&outputFormat=application/json', 
        {type: 'GET'})
        .done(      
         function(response) {
                    var geojsonFormat = new ol.format.GeoJSON({});
                    sourceVector.addFeatures(geojsonFormat.readFeatures(response,{dataProjection :projection,featureProjection : projection}));
                })
        .fail(function () {alert("BAD");});
    },
    strategy: new ol.loadingstrategy.tile(ol.tilegrid.createXYZ({maxZoom: 20}))
});

我尝试将strategy更改为strategy: new ol.loadingstrategy.bbox,但我得到Uncaught TypeError: this.strategy_ is not a function

大多数示例都在网址上设置了bbox策略和BBOX。如果我在网址末尾添加....&BBOX='+extent.join(','),我仍然会收到同样的错误。我错过了什么?是策略,网址,设置?我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:3)

您不应该初始化新的ol.loadingstrategy.bbox,它已经是ol.LoadingStrategy(与ol.loadingstrategy.tile不同,它是基于TileGrid返回ol.LoadingStrategy的工厂。

// when using the bbox strategy:
strategy: ol.loadingstrategy.bbox

// when using the tile strategy:
strategy: new ol.loadingstrategy.tile(tileGrid)