OpenLayers.Feature.Vector.style['default'].cursor = "pointer";
function start() {
- openSidebar({ onclose: stopBrowse });
- var vectors = new OpenLayers.Layer.Vector();
+ openSidebar({ onclose: stopBrowse });
+ var vectors = new OpenLayers.Layer.Vector();
- box = new OpenLayers.Control.DrawFeature(vectors, OpenLayers.Handler.RegularPolygon, {
- handlerOptions: {
- sides: 4,
- snapAngle: 90,
- irregular: true,
- persist: true,
- callbacks: { done: endDrag }
- }
- });
- map.addControl(box);
+ box = new OpenLayers.Control.DrawFeature(vectors, OpenLayers.Handler.RegularPolygon, {
+ handlerOptions: {
+ sides: 4,
+ snapAngle: 90,
+ irregular: true,
+ persist: true,
+ callbacks: { done: endDrag }
+ }
+ });
+ map.addControl(box);
+ map.events.register("moveend", map, validateLinks);
+ map.events.triggerEvent("moveend");
}
function stopBrowse() {
currentFeature.destroy();
currentFeature = null;
}
+ map.events.unregister("moveend", map, validateLinks);
}
function startDrag() {
getData(bounds);
$("drag_box").innerHTML = "Manually select a different area";
}
+
function displayFeatureWarning() {
var div = document.createElement("div");
var p = document.createElement("p");
}
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();
$("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