您的位置:首页 > 房产 > 家装 > 记mapboxGL实现鼠标经过高亮时的一个问题

记mapboxGL实现鼠标经过高亮时的一个问题

2025/4/21 7:15:54 来源:https://blog.csdn.net/GISShiXiSheng/article/details/139246640  浏览:    关键词:记mapboxGL实现鼠标经过高亮时的一个问题

概述

mapboxGL实现鼠标经过高亮可通过注册图层的mousemovemoveout事件来实现,在mousemove事件中可以拿到当前经过的要素,但是当使用该要素时,发现在某个地图级别下会有线和面数据展示不全的情况。究其原因,发现是mapboxGL在绘图的时候为提升效率也会进行切片,所以图层事件返回的要素时切片后的,当数据范围比较大、地图级别比较大的时候,必然会分成多块。

表现

实际情况

期望结果

实现

fetch('/data/999999.geojson').then(res => res.json()).then(res => {const adminFeatures = res.featuresmap.on("mousemove", "admin-boundry-fill", (e) => {// const feature = e.features[0]  // 此种方式会有图形不完整的情况const adcode = e.features[0].properties.adcode;const feature = adminFeatures.find((d) => d.properties.adcode === adcode);map.getSource("admin-boundry-h").setData(feature);map.getCanvasContainer().style.cursor = "pointer";});map.on("mouseout", "admin-boundry-fill", (e) => {map.getSource("admin-boundry-h").setData(new Geojson());map.getCanvasContainer().style.cursor = "default";});})

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com