Клуб API Карт

Карта с метками

intant.security
16 февраля 2016, 15:17

Познания в JavaScript у меня не какие переделывал карту из примера https://tech.yandex.ru/maps/jsbox/2.1/object_list все вроде получилось не могу понять как сделать так чтобы иконки появлялись когда checkbox который появляется на 25 строчке отмечен, а не когда на него нажимают это описывается как я понял на 40 строчке 

ymaps.ready(init);

function init() {

    
    var 
	   // Контейнер для меню.
	menu = $('<form name="kart"></form>'),
		// Создание экземпляра карты.
	myMap = new ymaps.Map('map', {
            center: [48.55091916, 66.90443350],
            zoom: 4
        }, {
            searchControlProvider: 'yandex#search'
        })
     
        ;
        
    for (var i = 0, l = groups.length; i < l; i++) {
        createMenuGroup(groups[i]);
    }

    function createMenuGroup (group) {
        // Пункт меню.
        var menuItem = $('<div clas style="border:#333 1 solid; box-shadow:5px 5px 0 #999; width:210px; height:40px; background-color:#FFF; margin:7px; float:left"><div style=" float:left; width:20px; margin-top:15px; margin-left:10px"><a href="#"><label><input type="checkbox" name="' + group.namef + '" /></div><p style=" margin-top:10px; float:left;">' + group.name + '</p></label><img src="' + group.url + '" width="30" style="float:right; margin:5px"/></a></div>'),
        // Коллекция для геообъектов группы.
            collection = new ymaps.GeoObjectCollection(null, { preset: group.style }),
        // Контейнер для подменю 
            submenu = $('<ul class="submenu"></ul>');

        // Добавляем коллекцию на карту.
        myMap.geoObjects.add(collection);

        // Добавляем подменю.
        menuItem
            .append(submenu)
            // Добавляем пункт в меню.
            .appendTo(menu)
            // По клику удаляем/добавляем коллекцию на карту и скрываем/отображаем подменю.
            .find('a')
            .toggle(function () {
				myMap.geoObjects.add(collection);
            }, function () {
                myMap.geoObjects.remove(collection);
            });
        for (var j = 0, m = group.items.length; j < m; j++) {
            createSubMenu(group.items[j], collection);
        }
    }

    function createSubMenu (item, collection, submenu) {
        // Пункт подменю.
        var submenuItem = $('<li><a href="#">' + item.name + '</a></li>'),
        // Создаем метку.
            placemark = new ymaps.Placemark(item.center, { balloonContent: item.name });

        // Добавляем метку в коллекцию.
        collection.add(placemark);
        // Добавляем пункт в подменю.
        submenuItem
            .appendTo(submenu)
            // При клике по пункту подменю открываем/закрываем баллун у метки.
            .find('a')
            .toggle(function () {
				placemark.balloon.close();
            }, function () {
                placemark.balloon.open();
            });
    }

    // Добавляем меню в тэг BODY.
    menu.appendTo($('body'));
    // Выставляем масштаб карты чтобы были видны все группы.
    myMap.setBounds(myMap.geoObjects.getBounds());
}

Заранее спасибо всем тем кто не останеться равнодушным 

1 комментарий
Подписаться на комментарии к посту
Из песочницы есть экспорт на jsfiddle, лучше выкладывать ссылку на него, чтобы вам помогли его там подправить, а код в посте бесполезен