ymaps.ready(init);
function init(){
var groups=[
{
name:"Группа 1",
style:"islands#blueCircleIcon",
items:[
{name:"Санкт-Петербург, Московский пр-т, д. 44"},
{name:"Санкт-Петербург, ул. Байконурская, д. 14А, ТРК «Континент»"},
]
},
{
name:"Группа 2",
style:"islands#greenCircleIcon",
items:[
{name:"Санкт-Петербург, Лиговский пр-т, д. 30А, ТРЦ «Галерея»"},
{name:"Санкт-Петербург, Петергофское ш., д. 51, ТРЦ «Жемчужная Плаза»"},
]
},
];
var myMap=new ymaps.Map('map',{
center:[59.939095,30.315868],
zoom:10
},{
searchControlProvider:'yandex#search'
}),
menu=$('<div class="menu"></div>');
for(var i=0,l=groups.length;i<l;i++){
createMenuGroup(groups[i]);
}
function createMenuGroup(group){
var menuItem=$('<div class="group"><p>'+group.name+'</p></div>'),
collection=new ymaps.GeoObjectCollection(null,{preset:group.style}),
submenu=$('<ul></ul>');
myMap.geoObjects.add(collection);
menuItem.append(submenu).appendTo(menu);
for(var j=0,m=group.items.length;j<m;j++){
createSubMenu(group.items[j],collection,submenu);
}
}
function createSubMenu(item,collection,submenu){
var submenuItem=$('<li><a href="#">'+item.name+'</a></li>');
ymaps.geocode(item.name,{results:1}).then(function(res){
var coords=res.geoObjects.get(0).geometry.getCoordinates();
var placemark=new ymaps.Placemark(coords,{balloonContent:item.name});
collection.add(placemark);
submenuItem.appendTo(submenu).find('a').bind('click',function(){
if(!placemark.balloon.isOpen()){
placemark.balloon.open();
}
else{
placemark.balloon.close();
}
return false;
});
});
}
menu.insertAfter($('#map'));
}