在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(',')
,我仍然会收到同样的错误。我错过了什么?是策略,网址,设置?我该如何解决这个问题?
由于
答案 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)