地图框标记/点的交互性取决于所选的渲染方法

问题描述 投票:0回答:1

AFAIK,在地图框图(Mapbox GL JS)上绘制标记时,您有两个选择:

(a)将它们绘制为点和图层样式(在这种情况下,它们被渲染成最终的<canvas>元素,它们不可检测,它们无法接收:悬停状态

(b)将它们添加为标记,然后保留可单独检查的HTML元素。这种方法的缺点是它们不像地图那样平滑和快速地缩放/缩放,因此有一点惯性是显而易见的。

这两种方法都支持交互(如果你在(a)选项中提供interactive: true),尽管你以不同的方式处理它。

在构建交互式地图时,我应该考虑哪些方法的其他限制?

mapbox mapbox-gl-js mapbox-marker
1个回答
2
投票

这是一个非常广泛的问题。但一般来说,我认为每种方法的好处如下:

  • 图层:地图的一部分,因此您可以获得碰撞检测,数据驱动样式,缩放驱动样式等。
  • 标记:DOM的一部分,因此您可以获得CSS,Javascript事件,轻松集成图像和字体,以及更简单的鼠标事件处理,如:hover

说层不支持:hover并不完全正确。您可以检测mouseOver然后执行map.setFeatureState()以在该功能上设置悬停属性。只是你没有免费获得它。

© www.soinside.com 2019 - 2024. All rights reserved.