0

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

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

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

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

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

4

1 回答 1

2

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

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

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

于 2019-04-02T21:11:38.503 回答