mapbox-gl:弹出气泡

地图开发中,弹出气泡的功能也是经常使用到的,显示poi的详细信息,加载一些多媒体的信息,同时,气泡跟随对应poi的位置进行移动。
mapbox-gl有对应的弹出气泡实现:Popup,通过初始化气泡对象就能够实现气泡的效果。
气泡通过setLngLat设置气泡在地图上的位置,这样才能随着地图移动而进行变化。
点击一个poi,显示气泡的效果:
在这里插入图片描述

map.on('click', 'places', function (e) {
//获取点击对象的坐标信息
var coordinates = e.features[0].geometry.coordinates.slice();
//气泡的内容放在图层源数据的属性中
var description = e.features[0].properties.description; 
//添加气泡到地图上
new mapboxgl.Popup()
.setLngLat(coordinates)
.setHTML(description)
.addTo(map);
});

鼠标移动到对象上,显示气泡的事件:

map.on('mouseenter', 'places', function (e) {});

鼠标移出对象,删除气泡的事件:

map.on('mouseleave', 'places', function () {});
mapbox-gl中使用Marker的时候,可以在Marker上关联一个气泡的信息,在Marker上点击,就能够实现弹出气泡的效果,相关代码:
     new mapboxgl.Marker(el)
    .setLngLat(monument)
    .setPopup(popup)
    .addTo(map);

气泡中的内容可以使用文本,也能够使用带样式的html内容。
气泡的外边框样式,需要重写默认的mapbox-gl自带的气泡样式,设置背景等效果,这个在chrome调试样式时,能够看到,其中涉及到的关键css名称有:

.mapboxgl-popup-content
.mapboxgl-popup-close-button 

更多文章,请关注公众号查看!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值