4
所以,我知道我们在Mapbox GL Api中有Marker.togglePopup()
。 但是我们可以通过编程关闭所有弹出窗口吗?如何在mapbox gl中以编程方式关闭所有弹出窗口?
所以,我知道我们在Mapbox GL Api中有Marker.togglePopup()
。 但是我们可以通过编程关闭所有弹出窗口吗?如何在mapbox gl中以编程方式关闭所有弹出窗口?
下面是一个示例:https://jsfiddle.net/kmandov/eozdazdr/
单击右上角的按钮打开/关闭弹出窗口。
假设你有一个弹出式和标记:
var popup = new mapboxgl.Popup({offset:[0, -30]})
.setText('Construction on the Washington Monument began in 1848.');
new mapboxgl.Marker(el, {offset:[-25, -25]})
.setLngLat(monument)
.setPopup(popup)
.addTo(map);
可以通过调用关闭弹出:
popup.remove();
,或者您可以通过调用打开它:
popup.addTo(map);
正如您在Marker source中看到的,togglePopup
在内部使用这两种方法:
togglePopup() {
var popup = this._popup;
if (!popup) return;
else if (popup.isOpen()) popup.remove();
else popup.addTo(this._map);
}