2016-11-29 2 views

ответ

4

Ниже приведен пример: 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); 
} 
Смежные вопросы