Ben*_*lph 5 javascript mapbox mapbox-gl-js
我在 Mapbox 地图上构建了一个标记,当用户将鼠标悬停在其上时,该标记如下所示:
我遇到的问题是文档图标是与背景图钉不同的层。这样用户就可以上传自定义图标。当使用mouseover和mouseleave事件在背景图钉层上创建悬停弹出窗口时,当用户将鼠标悬停在图标层上时,弹出窗口会闪烁。这是因为从技术上讲,用户正在离开后台 pin 层。
我知道有一些 javascript hack 可能会造成混乱,但我真正寻找的是一种“忽略”mapbox 图层上事件的方法。这可能吗?
编辑:这里的标记被渲染为 Mapbox 层,而不是 HTML 标记,因此是使用画布绘制的(我相信),所以使用 CSS 来忽略事件是不可能的。
您可以在不指定图层的情况下注册 mousemove 事件,并使用 queryRenderedFeatures 来查看光标是否位于两个图层中的任何一个上,而不是按图层注册事件。
另一种方法是使用https://www.mapbox.com/mapbox-gl-js/example/add-image/之类的技术并创建合成图像客户端,这样您就只有一层。