如何提高 getFeaturesAtPixel 的性能?

How to improve performance of getFeaturesAtPixel?

我使用 "map.getFeaturesAtPixel" 方法在鼠标单击交互下准确获取第一个功能。

即使该方法不是 return 单个特征,而是其图形表示达到单击点的所有特征,这仍按预期工作。

这种行为将是 "acceptable",但事实证明,一旦我们缩小,它的性能就会下降,许多特征被压缩并显示为巨大的特征...

我知道这不是在地图上显示要素的理想方式,但在某些情况下可能会发生这种情况。

无论如何,我尝试了使用 "small" 范围(基于点击坐标)和使用 getFeaturesIntersectingExtent 来检索我想要的内容(点击下的第一个功能)似乎是一种更快的方法。这种方法非常快,但它并不适用于所有场景,因为它只知道特征几何而不是它们的图形表示(我的需要)。

问题:是否有另一种方法可以以最佳方式获得这个第一个被点击的功能?

您可以使用它来获得鼠标点击功能

var feature = map.forEachFeatureAtPixel(evt.pixel,
                    function (feature) {
                        return feature;
                    });