Яндекс map api. Как убрать Markers ymaps.panorama.locate

Рейтинг: 0Ответов: 1Опубликовано: 26.04.2023

Нужно сделать панораму на яндекс api без маркеров(названия улиц и номера домов). На стартовой панорамs убираю без проблем, но при переходе по стрелочками маркеры появляются. Повесил обработку события перехода по стрелкам, но она срабатывает как я понял после перехода и очистить массив markers не удается.

ymaps.ready(function () {
    const Gpon=ymaps.panorama.locate([55.733685, 37.588264], {});
    //Gpon.events.add(['locate'], function (e) {                console.log(e);                ///e.originalEvent.target._engin._panorama._markers=[]            });
    Gpon.done((panoramas) => {
      if (panoramas.length > 0) {
        panoramas[0]._markers=[];
        //panoramas[0].getMarkers=()=>{return []};
       /*console.log(panoramas[0]);
        panoramas[0]._connectionArrows.forEach(function(item, index, array) {
          // ... делать что-то с item
          console.log(item);
        });*/
        const player = new ymaps.panorama.Player(
          "panorama",
          panoramas[0],
          { controls: [], suppressMapOpenBlock: true, }
        );
        player.events.add(['panoramachange'], function (e) {
            pan=player.getPanorama();
            pan._markers=[];
            console.log(pan);
            player.setPanorama(pan);
            return false;
            ///e.originalEvent.target._engin._panorama._markers=[]
        });
      }
    });
  });

Ответы

▲ 0

В обработчике события panoramachange можно очистить массив маркеров панорамы и вызвать метод setMarkers с пустым массивом, чтобы убрать маркеры.

ymaps.ready(function () {
  const Gpon = ymaps.panorama.locate([55.733685, 37.588264], {});
  Gpon.done((panoramas) => {
    if (panoramas.length > 0) {
      const player = new ymaps.panorama.Player(
        "panorama",
        panoramas[0],
        { controls: [], suppressMapOpenBlock: true }
      );
      player.events.add(["panoramachange"], function (e) {
        const panorama = player.getPanorama();
        panorama.setMarkers([]);
        player.setPanorama(panorama);
      });
    }
  });
});