[英]Overwrite automatically calculated TileWMS request properties in Open Layers 3
[英]Selecting map objects using ol.source.TileWMS in open layers 3
我正在使用开放图层3,我使用此代码显示地图:
wmsSource = new ol.source.TileWMS({
url: 'http://demo.boundlessgeo.com/geoserver/wms',
params: { 'LAYERS': 'ne:ne' },
serverType: 'geoserver',
crossOrigin: ''
});
var wmsLayer = new ol.layer.Tile({
source: wmsSource
});
我正在使用dragbox进行矩形选择,当我进行shift + drag时,我无法在地图中选择对象。 有人可以帮我解决一下如何实现它吗? 这是我用于矩形选择的代码。
dragBox.on('boxend', function(e) {
// features that intersect the box are added to the collection of
// selected features, and their names are displayed in the "info"
// div
var info = [];
var extent = dragBox.getGeometry().getExtent();
wmsSource .forEachFeatureIntersectingExtent(extent, function(feature) {
selectedFeatures.push(feature);
info.push(feature.get('name'));
});
if (info.length > 0) {
infoBox.innerHTML = info.join(', ');
}
}); `
您使用TileWMS源,它是在WMS服务器上呈现的图像(图块)的集合。 OpenLayers不了解用于渲染图像的功能。 因此, forEachFeatureIntersectingExtent
仅适用于矢量源。
您可以在boxend回调中创建WMS getFeatureInfo
-request,以从服务器加载功能信息。
或者,您可以创建包含所需功能的矢量源,并将其用于forEachFeatureIntersectingExtent
调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.