всплывающее окно с несколькими точками

У меня проблемы с открытым уровнем 5, который просматривает / копирует этот пример https://openlayers.org/en/latest/examples/icon.html?q=marker

наличие более одного «кликабельного значка», если я щелкаю и открываю всплывающее окно, нормально, тогда если я щелкаю карту (не значки), всплывающее окно исчезает, хорошо! но если у меня открылось всплывающее окно на первом значке, а затем я щелкнул еще один значок, баллон переместился вверх на следующий, но содержимое не изменилось ...

где я не прав !? Благодарность


person giacomo    schedule 27.12.2018    source источник
comment
Вы пытаетесь сделать что-то вроде этого?   -  person geocodezip    schedule 27.12.2018
comment
Или, возможно, нравится это?   -  person geocodezip    schedule 28.12.2018
comment
@geocodezip Проблема с всплывающими окнами начальной загрузки, которые можно воспроизвести, добавив второй значок в пример OpenLayers mikenunn.16mb.com/demo/icons-error.html mikenunn .16mb.com / demo / icons-fixed.html   -  person Mike    schedule 28.12.2018
comment
я посмотрел здесь и решил (добавление всплывающего содержимого) openlayers.org/en/latest /examples/popup.html   -  person giacomo    schedule 29.12.2018


Ответы (1)


Вам необходимо уничтожить старое всплывающее окно перед созданием нового. Но может возникнуть проблема с уничтожением с последующим немедленным воссозданием, см. Всплывающее окно Bootstrap уничтожить и воссоздать работает только каждый второй раз, поэтому вам может потребоваться короткий тайм-аут, и обновление соответствующего кода в примере будет выглядеть так:

    if (feature) {
      $(element).popover('destroy');
      setTimeout(function () {
        var coordinates = feature.getGeometry().getCoordinates();
        popup.setPosition(coordinates);
        $(element).popover({
          'placement': 'top',
          'html': true,
          'content': feature.get('name')
        });
        $(element).popover('show');
      }, 200);
    } else {
      $(element).popover('destroy');
    }

или вы можете попробовать решение, основанное на одном из других ответов на этот вопрос

person Mike    schedule 27.12.2018
comment
спасибо, я пробовал без тайм-аута, и это не сработало (я не пробовал с тайм-аутом, все равно решил с всплывающим контентом) - person giacomo; 28.12.2018
comment
Да, если это можно сделать без начальной загрузки и она не работает должным образом, лучше не использовать ее! - person Mike; 28.12.2018