gpt4 book ai didi

javascript - OpenLayers 4 - forEachFeatureAtPixel 上的 LayerFilter

转载 作者:行者123 更新时间:2023-11-29 11:02:27 24 4
gpt4 key购买 nike

我有 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(', ') || '&nbsp';
} else {
document.getElementById('info').innerHTML = '&nbsp;';
}
};

map.on('click', function (evt) {
displayFeatureInfo(evt.pixel);
});

我想要选择的图层名为“等时线”。当我尝试单击 map 中的任何矢量图层时,它会抛出一个错误“d.call is not a function”。

谁能指出我正确的方向?

最佳答案

看起来你的 args 被交换了。

forEachFeatureAtPixel 的参数是(像素、回调、选项)

你有(像素,选项,回调)

关于javascript - OpenLayers 4 - forEachFeatureAtPixel 上的 LayerFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44785657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com