有没有办法从地图框标记点击后获取信息?

问题描述 投票:4回答:2

我正在尝试为我的mapbox应用程序创建自己的弹出窗口类型。但是,我试图将弹出窗口固定在屏幕底部而不是悬停在标记上。我基本上想从弹出的活动中获取信息并将其放入地图之外的单独HTML元素中。无论是这种还是手动设置弹出窗口的样式都要经常固定在屏幕的底部。

我试图手动设置弹出窗口,使其固定在屏幕的底部,但是看起来这是不可能的,因为只要地图位置发生变化,地图框样式就会自动重新定位弹出窗口。

for(var i = 0; i < currentArray.length ; i++){

        var el = document.createElement('div');
        var markerHeight = 50, markerRadius = 10, linearOffset = 25;
        el.className = 'marker2';
        new mapboxgl.Marker(el)
        .setLngLat([currentArray[i].lng, currentArray[i].lat])
        .addTo(map);
        new mapboxgl.Marker(el)
        .setLngLat([currentArray[i].lng, currentArray[i].lat])
        .setPopup(new mapboxgl.Popup({ offset: 25, closeOnClick:true})
            .setHTML('<h3>' + currentArray[i].name
            + '</h3>'  + '<p>' + currentArray[i].venue + '</p>'))
            .addTo(map);
}

上面的代码循环遍历一个列表元素数组,并将它们绘制在地图上。我想找到一种方法来获取活动的元素(即正在显示的弹出窗口)并从中获取数组信息并将其转换为HTML元素。任何帮助深表感谢!

javascript mapbox mapbox-gl-js
2个回答
0
投票

Popuphttps://docs.mapbox.com/mapbox-gl-js/api/#popup)有一个你可以测试的.isOpen(),还有一个你可以听的'open'活动。


© www.soinside.com 2019 - 2024. All rights reserved.