AFAIK,在地图框图(Mapbox GL JS)上绘制标记时,您有两个选择:
(a)将它们绘制为点和图层样式(在这种情况下,它们被渲染成最终的<canvas>
元素,它们不可检测,它们无法接收:悬停状态
(b)将它们添加为标记,然后保留可单独检查的HTML元素。这种方法的缺点是它们不像地图那样平滑和快速地缩放/缩放,因此有一点惯性是显而易见的。
这两种方法都支持交互(如果你在(a)选项中提供interactive: true
),尽管你以不同的方式处理它。
在构建交互式地图时,我应该考虑哪些方法的其他限制?
这是一个非常广泛的问题。但一般来说,我认为每种方法的好处如下:
:hover
。说层不支持:hover
并不完全正确。您可以检测mouseOver
然后执行map.setFeatureState()
以在该功能上设置悬停属性。只是你没有免费获得它。