mapbox鼠标移入弹窗
时间: 2023-10-29 21:05:23 浏览: 233
Mapbox提供了一个弹出框插件来在鼠标移入时显示信息窗口。以下是使用Mapbox弹出框插件的示例代码:
```javascript
map.on('mouseenter', 'layer-id', function(e) {
// 获取特征的坐标和属性
var coordinates = e.features[0].geometry.coordinates.slice();
var description = e.features[0].properties.description;
// 确保弹出框不会超出地图视图
while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {
coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;
}
// 添加弹出框
new mapboxgl.Popup()
.setLngLat(coordinates)
.setHTML(description)
.addTo(map);
});
// 鼠标移出时删除弹出框
map.on('mouseleave', 'layer-id', function() {
map.getCanvas().style.cursor = '';
popup.remove();
});
```
在此示例中,我们在鼠标移入“layer-id”图层时显示一个弹出框,并在鼠标移出时删除它。在弹出框中,我们获取特征的坐标和属性,并将它们设置为弹出框的位置和内容。我们还确保弹出框不会超出地图视图。最后,我们将弹出框添加到地图中。
请注意,此示例中的代码只是一个基本示例。您可以根据自己的需求修改代码以满足您的实际情况。
阅读全文