【发布时间】:2018-12-04 23:12:34
【问题描述】:
我想为 Mapbox GL JS 中的一行创建一个弹出窗口。我有一个包含很多直线的图层,定义如下:
map.addLayer({id: 'lineLayer',
type: 'line',
source: 'lineSource',
layout: {'line-join': 'round', 'line-cap': 'round'},
paint: {'line-color': '#00c853','line-width': 5, 'line-opacity': 1 }});
然后我在一行中添加一个弹出窗口如下(伪代码):
map.on('mousemove', 'lineLayer', (e) => {
map.getCanvas().style.cursor = 'pointer';
popupCoordinatesXY = e.point; });
问题是:出于美观的原因,我不希望线条太宽,但是将鼠标准确地放在线条上太难了。即使光标距离某行大约 10 像素,如何触发该行的 mousemove 事件?
我已经考虑过用更宽的线条制作一个额外的、不可见的层,但我可以想象有一个更优雅的解决方案。
【问题讨论】:
标签: javascript mapbox mapbox-gl-js