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

时间:2019-04-02 15:16:16

标签: mapbox mapbox-gl-js mapbox-marker

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

(a)将其绘制为点和图层样式(在这种情况下,它们被渲染到最终的<canvas>元素中,无法检查,它们无法接收:hover状态< / p>

(b)将其添加为标记,然后保留为可单独检查的HTML元素。但是,这种方法的缺点是它们无法像地图一样平滑,快速地缩放/缩放,因此可以注意到一点惯性。

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

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

1 个答案:

答案 0 :(得分:2)

这是一个相当广泛的问题。但通常我认为每种方法都有以下优点:

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

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