Клуб API Карт

Еще немного и мой чекбокс начнет выводить слой с метками...

alexsp2007
7 сентября 2016, 13:33
function checkState () {
	    var shownObjects,
            agzsSearch = new ymaps.GeoQueryResult();
            
if ($('#agzs').prop('checked')) {
// как прописать условие, чтобы работал чекбокс???            
agzsSearch = myObjects.search('properties.balloonContentHeader = data[i].name').add(agzsSearch);
    }
     console.log('agzsSearch');
        shownObjects = agzsSearch.addToMap(myMap);
        myObjects.remove(shownObjects).removeFromMap(myMap);
    }
       
$('#agzs').click(checkState);

	jQuery.getJSON('http://comfort.xn--22-6kc1cvaaoh7b.xn--p1ai/catalog/view/theme/default/template/account/marker-layout.php', 
	function (data) {
for (var i = 0; i < data.length; i++) {
window.myObjects = ymaps.geoQuery({
            type: "FeatureCollection",
            features: [{
                type: 'Feature',
                geometry: {
                    type: 'Point',
                    coordinates: data[i].geolocation.split(/\s*,\s*/)
                },
                options: {
                    preset: 'islands#darkBlueDotIconWithCaption'
                },
                properties: {
                    iconCaption: 'АГЗС',
                    balloonContentHeader: data[i].name,
                    balloonContentBody: data[i].meta_keyword + '</br>' + data[i].model,
                    balloonContentFooter: '<a target="_blank" href="http://comfort.xn--22-6kc1cvaaoh7b.xn--p1ai/index.php?route=product/product&product_id='+ data[i].product_id + '" />Подробнее>>> </a>'
                }
            }
        ]
    }).addToMap(myMap);
}
});

Ну очень много всего прочитал, но все как-то не то.  

использую пример из песочницы, но он прописан не для массива данных...

Подскажите, как прописать условие, чтобы работал чекбокс???

5 комментариев
Подписаться на комментарии к посту
Вы зачем-то создаете в цикле коллекции из одного элемента, вместо того чтобы наполнить массив features одной коллекции
window.myObjects у вас каждый раз в цикле перезаписывается, ссылки на предыдущие объекты теряются

В результате myObjects.search будет искать только по единственному последнему геообъекту
dimik,
Мне сложно понять все сказанное,  может как-то постепенно? 
нужно переформатировать получаемый массив? типа 
var objects = []; как здесь https://yandex.ru/blog/mapsapi/41738? 



dimik,
даже не знаю, где еще почитать и с чего начать. 
alexsp2007,
Вот хорошая книжка по javascript
Я вам уже писал, если вы не знаете язык и пытаетесь делать наугад по примерам, скорее всего у вас ничего не выйдет или выйдет ерунда. Если вы знаете похапе – сформируйте JSON нужного вида полностью на стороне сервера и добавьте его на карту 3мя строчками кода без этой вот постобработки (цикла for) на клиенте.


Я не могу писать за всех клиентский код, или заниматься обучением. Могу ответить на конкретные вопросы по АПИ, подразумевая, что у вас есть достаточно знаний чтобы понять ответ.
dimik,
спасибо