我试图使用从官方OL3例子页面采取以下方法来创建一个鼠标悬停事件3 hasFeatureAtPixel过滤器:的OpenLayers的层
http://openlayers.org/en/latest/examples/earthquake-clusters.html
我只需要触发动作悬停在当特定层。在咨询过官方文档后,我发现你可以使用hasFeatureAtPixel的图层过滤功能,但它看起来并没有工作。
map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
}
var pixel = map.getEventPixel(evt.originalEvent);
var hit = map.hasFeatureAtPixel(pixel, function(feature, layer) {
console.log(layer);
console.log(feature);
});
});
console.log调用导致在控制台中给出要素对象,但没有图层对象,这些对象返回为'undefined'。它是我需要测试图层是否正确的图层对象。
任何想法为什么这不起作用?
不幸的是,我的矢量图层没有名称,我通常比较图层对象来识别图层。另外,不是图层过滤器函数中的第一个参数,而不是图层?这就是为什么我演示了一个console.out方法,因为我似乎无法从图层过滤器函数中获取图层,因此未定义。我会尝试这个,虽然,谢谢:) –
你会检查你想要的图层的方式并不重要,问题是如何实现图层过滤器。查看更新的答案。 –
我的错误是使用不正确的示例代码来尝试解决我的问题。问题很简单,过滤器函数中的参数是图层,而不是您已经演示的功能。问题解决了。 –