L.OSM.share = function (options) { var control = L.control(options), marker = L.marker([0, 0], {draggable: true}), locationFilter = new L.LocationFilter({ enableButton: false, adjustButton: false }); control.onAdd = function (map) { var $container = $('
') .attr('class', 'deemphasize') .text(I18n.t('javascripts.share.paste_html')) .appendTo($linkSection)); // Image var $imageSection = $('
') .attr('class', 'deemphasize') .html(I18n.t('javascripts.share.image_size') + ' x ') .appendTo($form); $('') .attr('type', 'submit') .attr('value', I18n.t('javascripts.share.download')) .appendTo($form); locationFilter .on('change', update) .addTo(map); marker.on('dragend', movedMarker); map.on('move', movedMap); map.on('moveend layeradd layerremove', update); options.sidebar.addPane($ui); $ui .on('hide', hidden); function hidden() { map.removeLayer(marker); map.options.scrollWheelZoom = map.options.doubleClickZoom = true; locationFilter.disable(); update(); } function toggle(e) { e.stopPropagation(); e.preventDefault(); $('#mapnik_scale').val(getScale()); marker.setLatLng(map.getCenter()); update(); options.sidebar.togglePane($ui, button); } function toggleMarker() { if ($(this).is(':checked')) { marker.setLatLng(map.getCenter()); map.addLayer(marker); map.options.scrollWheelZoom = map.options.doubleClickZoom = 'center'; } else { map.removeLayer(marker); map.options.scrollWheelZoom = map.options.doubleClickZoom = true; } update(); } function toggleFilter() { if ($(this).is(':checked')) { locationFilter.setBounds(map.getBounds().pad(-0.2)); locationFilter.enable(); } else { locationFilter.disable(); } update(); } function movedMap() { marker.setLatLng(map.getCenter()); update(); } function movedMarker() { if (map.hasLayer(marker)) { map.off('move', movedMap); map.on('moveend', updateOnce); map.panTo(marker.getLatLng()); } } function updateOnce() { map.off('moveend', updateOnce); map.on('move', movedMap); update(); } function update() { var bounds = map.getBounds(); $('#link_marker') .prop('checked', map.hasLayer(marker)); $('#image_filter') .prop('checked', locationFilter.isEnabled()); // Link / Embed $('#short_input').val(map.getShortUrl(marker)); $('#long_input').val(map.getUrl(marker)); $('#short_link').attr('href', map.getShortUrl(marker)); $('#long_link').attr('href', map.getUrl(marker)); var params = { bbox: bounds.toBBoxString(), layer: map.getMapBaseLayerId() }; if (map.hasLayer(marker)) { params.marker = marker.getLatLng().lat + ',' + marker.getLatLng().lng; } $('#embed_html').val( '' + '