-OSM.Export = function(map) {
+OSM.Export = function (map) {
var page = {};
var locationFilter = new L.LocationFilter({
function boundsChanged() {
var bounds = getBounds();
-
map.fitBounds(bounds);
locationFilter.setBounds(bounds);
-
- enableFilter();
+ locationFilter.enable();
validateControls();
}
- function enableFilter() {
- if (!locationFilter.getBounds().isValid()) {
- locationFilter.setBounds(map.getBounds().pad(-0.2));
- }
+ function enableFilter(e) {
+ e.preventDefault();
$("#drag_box").hide();
+
+ locationFilter.setBounds(map.getBounds().pad(-0.2));
locationFilter.enable();
+ validateControls();
}
function update() {
}
function setBounds(bounds) {
- var precision = zoomPrecision(map.getZoom());
+ var precision = OSM.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));
+
+ $("#export_overpass").attr("href",
+ "https://overpass-api.de/api/map?bbox=" +
+ $("#minlon").val() + "," + $("#minlat").val() + "," +
+ $("#maxlon").val() + "," + $("#maxlat").val());
}
function validateControls() {
$("#export_osm_too_large").toggle(getBounds().getSize() > OSM.MAX_REQUEST_AREA);
+ $("#export_commit").toggle(getBounds().getSize() < OSM.MAX_REQUEST_AREA);
+ }
+
+ function checkSubmit(e) {
+ if (getBounds().getSize() > OSM.MAX_REQUEST_AREA) e.preventDefault();
}
- page.pushstate = page.popstate = function(path) {
- $("#export_tab").addClass("current");
- $("#sidebar").removeClass("minimized");
- map.invalidateSize();
- $('#sidebar_content').load(path, page.load);
+ page.pushstate = page.popstate = function (path) {
+ OSM.loadSidebarContent(path, page.load);
};
- page.load = function() {
+ page.load = function () {
map
.addLayer(locationFilter)
.on("moveend", update);
$("#maxlat, #minlon, #maxlon, #minlat").change(boundsChanged);
$("#drag_box").click(enableFilter);
+ $(".export_form").on("submit", checkSubmit);
update();
+ return map.getState();
};
- page.unload = function() {
+ page.unload = function () {
map
.removeLayer(locationFilter)
.off("moveend", update);
-
- $("#export_tab").removeClass("current");
};
return page;