Собрал код для Яндекс карт, но понадобилось все перенести на Гугл карты. Как это сделать грамотней не понимаю. Помогите кто разбирается в этом, чтобы весь функционал остался, изменился лишь сервис.
ymaps.ready(init);
function init() {
var groups = [{
name: "Команда",
style: "islands#redIcon",
items: [{
center: [50.426472, 30.563022],
name: "1;"
}, {
center: [50.45351, 30.516489],
name: "2;"
}, {
center: [50.454433, 30.529874],
name: "3;"
}]
}, {
name: "Наши райдеры",
style: "islands#greenIcon",
items: [{
center: [50.429083, 30.521708],
name: "5;"
}, {
center: [50.450843, 30.498271],
name: "6;"
}, {
center: [50.454834, 30.516498],
name: "7;"
}]
}, {
name: "Покупатели",
style: "islands#orangeIcon",
items: [{
center: [50.443334, 30.520163],
name: "8;"
}, {
center: [50.446977, 30.505269],
name: "9;"
}, {
center: [50.452512, 30.530889],
name: "10;"
}]
},
];
var myMap = new ymaps.Map('map', {
center: [50.443705, 30.530946],
margin: [60, 5, 40, 5],
zoom: 14,
controls: ['zoomControl', 'typeSelector', 'fullscreenControl'],
}, {
searchControlProvider: 'yandex#search'
});
var $menu = $('<ul id="menu"></ul>');
for (var i = 0, l = groups.length; i < l; i++) {
createMenuGroup(groups[i]);
}
function createMenuGroup(group) {
var color = group.style.replace(/.+#(.+)Icon/, '$1');
var $menuItem = $('<li><a href="#" id="name" style="color: ' + color + ';">' + group.name + '</a></li>').data('set-bounds', true).appendTo($menu);
var collection = new ymaps.GeoObjectCollection(null, {
preset: group.style
});
var $submenu = $('<ul class="submenu"></ul>').appendTo($menuItem);
myMap.geoObjects.add(collection);
$menuItem.find('a').on('click', function(e) {
myMap.balloon.close();
e.preventDefault();
$menuItem.toggleClass('active');
$menu.find('li').not($menuItem).removeClass('active');
if ($menuItem.hasClass('active')) {
myMap.geoObjects.each(function(a) {
a.options.set('visible', false);
})
collection.options.set('visible', true);
myMap.setBounds(collection.getBounds(), {
duration: 500,
useMapMargin: true
});
} else {
myMap.geoObjects.each(function(a) {
a.options.set('visible', true);
});
myMap.setBounds(myMap.geoObjects.getBounds(), {
duration: 500,
useMapMargin: true
});
}
});
for (var j = 0; j < group.items.length; j++) {
createSubMenu(group.items[j], collection, $submenu);
}
}
function createSubMenu(item, collection, $submenu) {
var $submenuItem = $('<li><a href="1">' + item.name + '</a></li>');
var placemark = new ymaps.Placemark(item.center, {
balloonContent: item.name
});
collection.add(placemark);
$submenuItem.appendTo($submenu)
$submenuItem.find('a').on('click', function() {
if (!placemark.balloon.isOpen()) {
placemark.balloon.open();
} else {
placemark.balloon.close();
}
return false;
});
}
$menu.appendTo($('body'));
myMap.setBounds(myMap.geoObjects.getBounds(), {
useMapMargin: true
});
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите что это за жестьЛюбой проект стал с этой ошибкой запускаться
При написании скрипта столкнулся с такой проблемой: В ниже прикрепленном фрагменте упрощенного кода в который я помечу нужный участок, при...
Имеется модальное окно fancyboxКонтента в модальном окне может быть много