- function startExport(sidebarHtml) {
- var marker;
-
- var locationFilter = new L.LocationFilter({
- enableButton: false,
- adjustButton: false
- }).addTo(map);
-
- locationFilter.on("change", filterChanged);
-
- map.on("moveend", mapMoved);
- map.on("baselayerchange", htmlUrlChanged);
-
- $("#sidebar_title").html(I18n.t('export.start_rjs.export'));
- $("#sidebar_content").html(sidebarHtml);
-
- $("#maxlat,#minlon,#maxlon,#minlat").change(boundsChanged);
-
- $("#drag_box").click(enableFilter);
-
- $("#add_marker").click(startMarker);
-
- $("#format_osm,#format_mapnik,#format_html").click(formatChanged);
-
- $("#mapnik_scale").change(mapnikSizeChanged);
-
- openSidebar();
-
- if (map.getMapBaseLayerId() == "mapnik") {
- $("#format_mapnik").prop("checked", true);
- }
-
- setBounds(map.getBounds());
- formatChanged();
-
- $("body").removeClass("site-index").addClass("site-export");
-
- $("#sidebar").one("closed", function () {
- $("body").removeClass("site-export").addClass("site-index");
-
- map.removeLayer(locationFilter);
- clearMarker();
-
- map.off("moveend", mapMoved);
- map.off("baselayerchange", htmlUrlChanged);
- locationFilter.off("change", filterChanged);
- });
-
- function getBounds() {
- return L.latLngBounds(L.latLng($("#minlat").val(), $("#minlon").val()),
- L.latLng($("#maxlat").val(), $("#maxlon").val()));
- }
-
- function getScale() {
- var bounds = map.getBounds(),
- centerLat = bounds.getCenter().lat,
- halfWorldMeters = 6378137 * Math.PI * Math.cos(centerLat * Math.PI / 180),
- meters = halfWorldMeters * (bounds.getEast() - bounds.getWest()) / 180,
- pixelsPerMeter = map.getSize().x / meters,
- metersPerPixel = 1 / (92 * 39.3701);
- return Math.round(1 / (pixelsPerMeter * metersPerPixel));
- }
-
- function getMercatorBounds() {
- var bounds = getBounds();
- return L.bounds(L.CRS.EPSG3857.project(bounds.getSouthWest()),
- L.CRS.EPSG3857.project(bounds.getNorthEast()));
- }
-
- function boundsChanged() {
- var bounds = getBounds();
-
- map.fitBounds(bounds);
- locationFilter.setBounds(bounds);
-
- enableFilter();
- validateControls();
- mapnikSizeChanged();
- }
-
- function enableFilter() {
- if (!locationFilter.getBounds().isValid()) {
- locationFilter.setBounds(map.getBounds().pad(-0.2));
- }
-
- $("#drag_box").hide();
- locationFilter.enable();
- }
-
- function filterChanged() {
- setBounds(locationFilter.getBounds());
- validateControls();
- }
-
- function startMarker() {
- $("#add_marker").html(I18n.t('export.start_rjs.click_add_marker'));
-
- map.on("click", endMarker);
-
- return false;
- }
-
- function endMarker(event) {
- map.off("click", endMarker);
-
- $("#add_marker").html(I18n.t('export.start_rjs.change_marker'));
- $("#marker_inputs").show();
-
- var latlng = event.latlng;
-
- if (marker) {
- map.removeLayer(marker);
- }