检测覆盖是否在视图中

Detect if overlay is in view

如何检测覆盖元素当前是否可见?

我认为有可能通过 DOM-元素的边界框获取此信息,但这对我来说似乎不是一个好的解决方案。

有没有办法使用 openlayers API 找出答案?

您可以检查 ol.Overlay 位置是否在 ol.View 范围内:

var overlay_position = overlay.getPosition();
var view_extent = map.getView().calculateExtent(map.getSize());
console.info(ol.extent.containsCoordinate(view_extent, overlay_position));