我有2个矢量图层,其中我只想选择1个WFS获取要素信息图层。 OL4文档告诉我forEachFeatuerAtPixel函数有一个opt_layerfilter。
我遇到类似这样的情况:OpenLayers 3 hasFeatureAtPixel filter for layer。 由于我缺乏JavaScript知识,我似乎无法使用OpenLayers 4中的以下代码:
var displayFeatureInfo = function (pixel) {
var features = [];
map.forEachFeatureAtPixel(pixel, {
layerFilter: function (layer) {
return layer.get('name') === 'isochrones';
}
}, function (feature) {
features.push(feature);
});
if (features.length > 0) {
var info = [];
var i, ii;
for (i = 0, ii = features.length; i < ii; ++i) {
info.push('<div id="infobox">' + '<p2>' + 'Isochroon ' + features[i].get('name') + ', locatie ' + features[i].get('facilityid') + '</p2>' + '<p>' + 'aantal lopend: ' + features[i].get('n_pedestrians') + ', fiets: ' + features[i].get('n_bike') + ', ebike: ' + features[i].get('n_ebike') + '<br>' + 'speedpedelec: ' + features[i].get('n_speedpedelec') + ', auto: ' + features[i].get('n_car') + '</p>' + '</div>');
}
document.getElementById('info').innerHTML = info.join(', ') || ' ';
} else {
document.getElementById('info').innerHTML = ' ';
}
};
map.on('click', function (evt) {
displayFeatureInfo(evt.pixel);
});
我想要选择的图层被命名为“等时线”。 当我尝试单击地图中的任何矢量图层时,它会向我抛出错误“d.call不是函数”。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
看起来你已经交换了args。
forEachFeatureAtPixel的参数是(像素,回调,选项)
你有(像素,选项,回调)