Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Можно ли как то реализовать "refresh" яндекс карты или меток на ней по клику? (https://javascript.ru/forum/events/84478-mozhno-li-kak-realizovat-refresh-yandeks-karty-ili-metok-na-nejj-po-kliku.html)

Diiim 22.09.2022 14:06

Можно ли как то реализовать "refresh" яндекс карты или меток на ней по клику?
 
Доброго времени, уважаемые форумчане!

Подскажите можно ли как то реализовать "refresh" яндекс карты или меток на ней по клику/смены параметра фильтра?

Есть код, картая яндекса + метки выводятся через "посты" а координаты на них через ACF. Все выводится как надо, при смене фильтра "посты" фильтруются как надо, но вот метки ни как не хотят.

Я понимаю что JS начинает читаться при загрузке страницы и его потом ни как не изменить, но вот как сделать этот "reinit" карты при клике к примеру на чекбокс в фильтре чтобы метки заново "собрались" на карте исходя из "нового" кода

Использую эту библиотеку api-maps.yandex.ru/2.1/?lang=ru_RU

Код карты и меток

<script>
 
 
    ymaps.ready(init);
 
    function init() {
 
    var myMap = new ymaps.Map("map", {
        center: [59, 34],
        zoom: 5,
        controls: ['zoomControl'],
    }, {
        //searchControlProvider: 'yandex#search'
    });
 
    myMap.behaviors.disable('scrollZoom');
 
    myMap.events.add('click', function(e) {
        myMap.balloon.close();
    });
 
 
    <?php if (have_posts()): ?>
    <?php while (have_posts()): the_post(); ?>
 
 
    // Метка 1 - пост
    <?php if ( have_rows( 'coordinates_area' ) ) : ?>
    <?php while ( have_rows( 'coordinates_area' ) ) : the_row(); ?>
 
    var myPlacemark = new ymaps.Placemark([<?php the_sub_field( 'latitude_area' ); ?>, <?php the_sub_field( 'longitude_area' ); ?>], {
 
        // Изображение
        //balloonContentHeader: '<img class="m-img" src="/thumbs/dom-po-proektu-vestfoll-iz.jpg">',
 
        // Заголовок
        //balloonContentBody: '<div class="m-title">Дом по проекту</div>',
 
        // Ссылка
        //balloonContentFooter: '<a class="m-link" href="/agalatovo/">Посмотреть</a>',
 
        // Подсказака (при наведении)
        hintContent: 'Дом по проекту',
 
    }, {
        preset: 'islands#darkGreenDotIcon',
        balloonMaxWidth: 300,
 
    });
 
    myMap.geoObjects.add(myPlacemark);
 
 
    <?php endwhile; ?>
    <?php endif; ?>
    // #Метка 1 - пост               
 
    <?php endwhile; ?>
    <?php else: ?>
 
    <?php endif; ?>
 
    
    }
 
</script>


Также пробую удалять метки, потом их добавляю, но добавляется всего лишь одна.

<script>
    jQuery('.checkbox').click(function(){
    myMap.geoObjects.removeAll();
        myMap.geoObjects.add(myPlacemark);
    });
</script>


Часовой пояс GMT +3, время: 07:24.