"Image" and "Embeddable HTML" options move to share control. Only XML export remains, and is now accessed via a sidebar link rather than the tab bar.
73 lines
1.9 KiB
JavaScript
73 lines
1.9 KiB
JavaScript
function initializeExport(map) {
|
|
if (window.location.pathname == "/export") {
|
|
startExport();
|
|
}
|
|
|
|
function startExport() {
|
|
var locationFilter = new L.LocationFilter({
|
|
enableButton: false,
|
|
adjustButton: false
|
|
}).addTo(map);
|
|
|
|
locationFilter.on("change", update);
|
|
|
|
map.on("moveend", update);
|
|
|
|
$("#sidebar_title").html(I18n.t('export.start_rjs.export'));
|
|
|
|
$("#maxlat,#minlon,#maxlon,#minlat").change(boundsChanged);
|
|
|
|
$("#drag_box").click(enableFilter);
|
|
|
|
openSidebar();
|
|
|
|
setBounds(map.getBounds());
|
|
|
|
$("#sidebar").one("closed", function () {
|
|
map.removeLayer(locationFilter);
|
|
map.off("moveend", update);
|
|
locationFilter.off("change", update);
|
|
});
|
|
|
|
function getBounds() {
|
|
return L.latLngBounds(L.latLng($("#minlat").val(), $("#minlon").val()),
|
|
L.latLng($("#maxlat").val(), $("#maxlon").val()));
|
|
}
|
|
|
|
function boundsChanged() {
|
|
var bounds = getBounds();
|
|
|
|
map.fitBounds(bounds);
|
|
locationFilter.setBounds(bounds);
|
|
|
|
enableFilter();
|
|
validateControls();
|
|
}
|
|
|
|
function enableFilter() {
|
|
if (!locationFilter.getBounds().isValid()) {
|
|
locationFilter.setBounds(map.getBounds().pad(-0.2));
|
|
}
|
|
|
|
$("#drag_box").hide();
|
|
locationFilter.enable();
|
|
}
|
|
|
|
function update() {
|
|
setBounds(locationFilter.isEnabled() ? locationFilter.getBounds() : map.getBounds());
|
|
validateControls();
|
|
}
|
|
|
|
function setBounds(bounds) {
|
|
var precision = zoomPrecision(map.getZoom());
|
|
$("#minlon").val(bounds.getWest().toFixed(precision));
|
|
$("#minlat").val(bounds.getSouth().toFixed(precision));
|
|
$("#maxlon").val(bounds.getEast().toFixed(precision));
|
|
$("#maxlat").val(bounds.getNorth().toFixed(precision));
|
|
}
|
|
|
|
function validateControls() {
|
|
$("#export_osm_too_large").toggle(getBounds().getSize() > OSM.MAX_REQUEST_AREA);
|
|
}
|
|
}
|
|
}
|