我試圖使用從官方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方法,因爲我似乎無法從圖層過濾器函數中獲取圖層,因此未定義。我會嘗試這個,雖然,謝謝:) –
你會檢查你想要的圖層的方式並不重要,問題是如何實現圖層過濾器。查看更新的答案。 –
我的錯誤是使用不正確的示例代碼來嘗試解決我的問題。問題很簡單,過濾器函數中的參數是圖層,而不是您已經演示的功能。問題解決了。 –