ymaps.ready(init);
function init() {
var myMap = new ymaps.Map('map', {
center: [50.443705, 30.530946],
zoom: 14
}, {
searchControlProvider: 'yandex#search'
}),
menu = $('<div class="menu"/>');
for (var i = 0, l = groups.length; i < l; i++) {
createMenuGroup(groups[i]);
}
function createMenuGroup (group) {
var menuItem = $('<div>' + group.name + '</div>'),
collection = new ymaps.GeoObjectCollection(null, { preset: group.style }),
submenu = $('<select class="submenu"/>');
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 = $('<option value="">' + item.name + '</option>'),
placemark = new ymaps.Placemark(item.center, { balloonContent: item.name });
collection.add(placemark);
submenuItem.appendTo(submenu);
}
menu.appendTo($('body'));
myMap.setBounds(myMap.geoObjects.getBounds());
}
Если просто "заверстать" его под селект - то как то так. Обработчики нужные сам навесишь