Перенос кода из Яндекс Карт в Гугл карты

481
25 января 2017, 00:38

Собрал код для Яндекс карт, но понадобилось все перенести на Гугл карты. Как это сделать грамотней не понимаю. Помогите кто разбирается в этом, чтобы весь функционал остался, изменился лишь сервис.

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 
  }); 
}

READ ALSO
Помогите исправить JavaScript код

Помогите исправить JavaScript код

Выдаёт ошибку на 9й строке

329
Ошибка при запуске react-native [требует правки]

Ошибка при запуске react-native [требует правки]

Подскажите что это за жестьЛюбой проект стал с этой ошибкой запускаться

346
Странное поведение call() и apply()

Странное поведение call() и apply()

При написании скрипта столкнулся с такой проблемой: В ниже прикрепленном фрагменте упрощенного кода в который я помечу нужный участок, при...

347
Автовысота модального окна fancybox

Автовысота модального окна fancybox

Имеется модальное окно fancyboxКонтента в модальном окне может быть много

298