L.OSM.layers = function(options) { var control = L.control(options); control.onAdd = function (map) { var layers = options.layers; var $container = $('
') .attr('class', 'control-layers'); var button = $('') .attr('class', 'control-button') .attr('href', '#') .attr('title', 'Layers') .html('') .on('click', toggle) .appendTo($container); var $ui = $('
') .attr('class', 'layers-ui'); $('
') .attr('class', 'sidebar_heading') .appendTo($ui) .append( $('') .text(I18n.t('javascripts.close')) .attr('class', 'sidebar_close') .attr('href', '#') .bind('click', toggle)) .append( $('

') .text(I18n.t('javascripts.map.layers.header'))); var baseSection = $('
') .attr('class', 'section base-layers') .appendTo($ui); list = $('
    ') .appendTo(baseSection); layers.forEach(function(layer) { var item = $('
  • ') .appendTo(list); if (map.hasLayer(layer)) { item.addClass('active'); } var div = $('
    ') .appendTo(item); map.whenReady(function() { var miniMap = L.map(div[0], {attributionControl: false, zoomControl: false}) .addLayer(new layer.constructor()); miniMap.dragging.disable(); miniMap.touchZoom.disable(); miniMap.doubleClickZoom.disable(); miniMap.scrollWheelZoom.disable(); $ui .on('show', shown) .on('hide', hide); function shown() { miniMap.invalidateSize(); setView({animate: false}); map.on('moveend', moved); } function hide() { map.off('moveend', moved); } function moved() { setView(); } function setView(options) { miniMap.setView(map.getCenter(), Math.max(map.getZoom() - 2, 0), options); } }); var label = $('