Openlayers 3 在vector openlayer图层上设置maxFeatures
因此,我使用Openlayers 3.9.0,并使用Openlayers 3 在vector openlayer图层上设置maxFeatures,openlayers-3,Openlayers 3,因此,我使用Openlayers 3.9.0,并使用加载程序从Geoserver获取矢量层。下面是目前有效的代码 var sourceVector = new ol.source.Vector({ format: new ol.format.GeoJSON(), loader: function (extent) { $.ajax('http://localhost:5550/geoserver/mymap/wfsservice=W
加载程序
从Geoserver获取矢量层。下面是目前有效的代码
var sourceVector = new ol.source.Vector({
format: new ol.format.GeoJSON(),
loader: function (extent) {
$.ajax('http://localhost:5550/geoserver/mymap/wfsservice=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}))
});
通过将maxFeatures
(…&maxFeatures=50&…
)设置到我的url,我无法获得所有功能。这是否意味着如果放大,我会看到更多的功能,如果缩小,我会看到更少的功能?maxFeatures
是否与bbox
相关,并根据当前地图视图和缩放级别渲染要素?或者这不是概念?因为在我的例子中,我总是看到固定数量的功能
感谢调用了
ol.source.Vector
的加载函数,其中包含范围、分辨率和投影。语义期望是加载程序函数负责加载该范围内的所有特性
ol.source.Vector
维护所有加载扩展数据块的历史记录,并且不会尝试加载已加载扩展数据块内的扩展数据块
因此,如果在较低的缩放级别上使用tile
加载策略,并且maxFeatures
导致忽略某些功能,则放大将不会使它们出现(因为加载该区段本应已完成父tile加载)
因此,将WFS参数maxFeatures
与ol.source.Vector
一起使用通常是个坏主意。如果您确实需要限制每个请求的特征数量,请考虑将您的层限制到更高的缩放级别,或者对每个加载程序调用进行多个请求。
此外,加载器代码不使用
extent
参数,使每个请求都相同。加载程序的唯一责任是加载给定范围内的功能。如果要独立于其位置加载所有要素,请使用all
加载策略。调用ol.source.Vector
的加载函数时,会使用范围、分辨率和投影。语义期望是加载程序函数负责加载该范围内的所有特性
ol.source.Vector
维护所有加载扩展数据块的历史记录,并且不会尝试加载已加载扩展数据块内的扩展数据块
因此,如果在较低的缩放级别上使用tile
加载策略,并且maxFeatures
导致忽略某些功能,则放大将不会使它们出现(因为加载该区段本应已完成父tile加载)
因此,将WFS参数maxFeatures
与ol.source.Vector
一起使用通常是个坏主意。如果您确实需要限制每个请求的特征数量,请考虑将您的层限制到更高的缩放级别,或者对每个加载程序调用进行多个请求。
此外,加载器代码不使用
extent
参数,使每个请求都相同。加载程序的唯一责任是加载给定范围内的功能。如果要独立于其位置加载所有要素,请使用all
加载策略。调用ol.source.Vector
的加载函数时,会使用范围、分辨率和投影。语义期望是加载程序函数负责加载该范围内的所有特性
ol.source.Vector
维护所有加载扩展数据块的历史记录,并且不会尝试加载已加载扩展数据块内的扩展数据块
因此,如果在较低的缩放级别上使用tile
加载策略,并且maxFeatures
导致忽略某些功能,则放大将不会使它们出现(因为加载该区段本应已完成父tile加载)
因此,将WFS参数maxFeatures
与ol.source.Vector
一起使用通常是个坏主意。如果您确实需要限制每个请求的特征数量,请考虑将您的层限制到更高的缩放级别,或者对每个加载程序调用进行多个请求。
此外,加载器代码不使用
extent
参数,使每个请求都相同。加载程序的唯一责任是加载给定范围内的功能。如果要独立于其位置加载所有要素,请使用all
加载策略。调用ol.source.Vector
的加载函数时,会使用范围、分辨率和投影。语义期望是加载程序函数负责加载该范围内的所有特性
ol.source.Vector
维护所有加载扩展数据块的历史记录,并且不会尝试加载已加载扩展数据块内的扩展数据块
因此,如果在较低的缩放级别上使用tile
加载策略,并且maxFeatures
导致忽略某些功能,则放大将不会使它们出现(因为加载该区段本应已完成父tile加载)
因此,将WFS参数maxFeatures
与ol.source.Vector
一起使用通常是个坏主意。如果您确实需要限制每个请求的特征数量,请考虑将您的层限制到更高的缩放级别,或者对每个加载程序调用进行多个请求。
此外,加载器代码不使用extent
参数,使每个请求都相同。加载程序的唯一责任是加载给定范围内的功能。如果您想独立于其位置加载所有功能,请使用all
加载策略。那么,“摆脱maxFeatures”是一条一般规则吗?或者它可以与其他设置结合使用?例如maxFeatures
和策略bbox?我认为,这种组合将只加载50个功能,每放大一级