don't let users select areas bigger than allowed
This commit is contained in:
parent
adc823ce1b
commit
19a57c97b1
1 changed files with 32 additions and 13 deletions
|
@ -20,6 +20,8 @@ page << <<EOJ
|
|||
}
|
||||
});
|
||||
map.addControl(box);
|
||||
map.events.register("moveend", map, validateLinks);
|
||||
map.events.triggerEvent("moveend");
|
||||
}
|
||||
|
||||
function stopBrowse() {
|
||||
|
@ -35,6 +37,7 @@ page << <<EOJ
|
|||
currentFeature.destroy();
|
||||
currentFeature = null;
|
||||
}
|
||||
map.events.unregister("moveend", map, validateLinks);
|
||||
}
|
||||
|
||||
function startDrag() {
|
||||
|
@ -59,6 +62,7 @@ page << <<EOJ
|
|||
getData(bounds);
|
||||
$("drag_box").innerHTML = "Manually select a different area";
|
||||
}
|
||||
|
||||
function displayFeatureWarning() {
|
||||
var div = document.createElement("div");
|
||||
var p = document.createElement("p");
|
||||
|
@ -106,11 +110,17 @@ page << <<EOJ
|
|||
}
|
||||
|
||||
function getData(bounds) {
|
||||
$("status").innerHTML = "Loading...";
|
||||
|
||||
bounds.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
|
||||
var size = bounds.getWidth() * bounds.getHeight();
|
||||
if (size > 0.25) {
|
||||
$("status").innerHTML = "Unable to load: Bounding box size of " + size + " is too large. (Must be smaller than 0.25)";
|
||||
return;
|
||||
}
|
||||
|
||||
var url = "/api/0.5/map?bbox="+bounds.toBBOX();
|
||||
|
||||
$("status").innerHTML = "Loading...";
|
||||
if (!gml) {
|
||||
var def = OpenLayers.Feature.Vector.style['default'];
|
||||
var style = new OpenLayers.Style();
|
||||
|
@ -257,6 +267,15 @@ page << <<EOJ
|
|||
$("maxlon").innerHTML = Math.round(bounds.right * decimals) / decimals;
|
||||
$("maxlat").innerHTML = Math.round(bounds.top * decimals) / decimals;
|
||||
}
|
||||
function validateLinks() {
|
||||
var bounds = this.getExtent();
|
||||
bounds = bounds.clone().transform(map.getProjectionObject(), epsg4326);
|
||||
|
||||
if (bounds.getWidth() * bounds.getHeight() > 0.25) {
|
||||
$("use_map").style.display = "none";
|
||||
} else {
|
||||
$("use_map").style.display = "inline";
|
||||
}
|
||||
}
|
||||
start();
|
||||
EOJ
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue