[OpenLayers-Commits] r3136 - in sandbox/ominiverdi/openlayers: lib/OpenLayers/Control theme/default
commits at openlayers.org
commits at openlayers.org
Sun May 6 17:14:51 EDT 2007
Author: ominiverdi
Date: 2007-05-06 17:14:51 -0400 (Sun, 06 May 2007)
New Revision: 3136
Modified:
sandbox/ominiverdi/openlayers/lib/OpenLayers/Control/WMSManager.js
sandbox/ominiverdi/openlayers/theme/default/style.css
Log:
WMSManager (ticket #687): added switch layer system for overlays, added drop layer function, added opacity controllor for overlays
Modified: sandbox/ominiverdi/openlayers/lib/OpenLayers/Control/WMSManager.js
===================================================================
--- sandbox/ominiverdi/openlayers/lib/OpenLayers/Control/WMSManager.js 2007-05-04 16:54:54 UTC (rev 3135)
+++ sandbox/ominiverdi/openlayers/lib/OpenLayers/Control/WMSManager.js 2007-05-06 21:14:51 UTC (rev 3136)
@@ -188,7 +188,79 @@
// create line break
var br = document.createElement("br");
-
+ //create opacity value
+ var opacity = (layer.opacity)?layer.opacity:1;
+ var opSpan = document.createElement("span");
+ opSpan.innerHTML = opacity;
+
+ // create opacity Anchors
+ var aUp = document.createElement("a");
+ aUp.href="#";
+ aUp.layer=layer;
+ aUp.opSpan = opSpan;
+ aUp.className="olLegendLayerOpacity";
+ aUp.onclick = function(){
+ var maxOpacity = 1;
+ var minOpacity = 0.1;
+ var opacity=(this.layer.opacity)?this.layer.opacity:1;
+ var newOpacity = (parseFloat(opacity) + 0.1).toFixed(1);
+ newOpacity = Math.min(maxOpacity, Math.max(minOpacity, newOpacity));
+ this.layer.setOpacity(newOpacity);
+ this.opSpan.innerHTML = newOpacity;
+ };
+ aUp.innerHTML = '<span>></span>';
+
+ var aDown = document.createElement("a");
+ aDown.href="#";
+ aDown.layer=layer;
+ aDown.opSpan = opSpan;
+ aDown.className="olLegendLayerOpacity";
+ aDown.onclick = function(){
+ var maxOpacity = 1;
+ var minOpacity = 0.1;
+ var opacity=(this.layer.opacity)?this.layer.opacity:1;
+ var newOpacity = (parseFloat(opacity) - 0.1).toFixed(1);
+ newOpacity = Math.min(maxOpacity, Math.max(minOpacity, newOpacity));
+ this.layer.setOpacity(newOpacity);
+ this.opSpan.innerHTML = newOpacity;
+ };
+ aDown.innerHTML = '<span><</span>';
+
+
+ //Create DropLayer
+ var aDrop = document.createElement("a");
+ aDrop.innerHTML = '<span>X</span>';
+ aDrop.className = 'olLegendLayerDrop';
+ aDrop.layer = layer;
+ aDrop.onclick = function(){
+ this.layer.map.removeLayer(this.layer);
+ }
+
+ //Create SwitchLayer
+ var aSwitchUp = document.createElement("a");
+ aSwitchUp.innerHTML = '<span>↑</span>';
+ aSwitchUp.className = 'olLegendLayerSwitch';
+ aSwitchUp.layer = layer;
+ aSwitchUp.onclick = function(){
+ var startZ = this.layer.map.getLayerIndex(this.layer);
+ if(startZ==1)return alert("this is already the top");
+ this.layer.map.raiseLayer(this.layer,-1);
+ }
+ var aSwitchDown = document.createElement("a");
+ aSwitchDown.innerHTML = '<span>↓</span>';
+ aSwitchDown.className = 'olLegendLayerSwitch';
+ aSwitchDown.layer = layer;
+ aSwitchDown.onclick = function(){
+ var startZ = this.layer.map.getLayerIndex(this.layer);
+ var numL = this.layer.map.getNumLayers();
+ //alert(startZ + ':' + numL);
+ if(startZ==1)return alert("this is already the top");
+ this.layer.map.raiseLayer(this.layer,1);
+ }
+
+
+
+
var groupArray = (baseLayer) ? this.baseLayerInputs
: this.dataLayerInputs;
groupArray.push(inputElem);
@@ -196,9 +268,26 @@
var groupDiv = (baseLayer) ? this.baseLayersDiv
: this.dataLayersDiv;
- groupDiv.appendChild(inputElem);
- groupDiv.appendChild(labelSpan);
- groupDiv.appendChild(br);
+
+ //create Layer div
+ var layerDiv = document.createElement("div");
+ layerDiv.className = 'olLegendLayerDiv';
+ layerDiv.appendChild(inputElem);
+ layerDiv.appendChild(labelSpan);
+ layerDiv.appendChild(aDrop);
+ layerDiv.appendChild(br);
+ if(!baseLayer){
+ layerDiv.appendChild(aDown);
+ layerDiv.appendChild(opSpan);
+ layerDiv.appendChild(aUp);
+ layerDiv.appendChild(aSwitchDown);
+ layerDiv.appendChild(aSwitchUp);
+ }
+
+
+ //append to group div
+ groupDiv.appendChild(layerDiv);
+
}
}
@@ -775,13 +864,15 @@
if(this.WMSManager.resolutionsValue){
- var options = {resolutions: this.WMSManager.resolutionsValue};
+ var aResolutions = this.WMSManager.resolutionsValue;
+ var minRes = aResolutions[aResolutions.length -1];
+ var options = {resolutions: aResolutions, maxresolution: aResolutions[0], minResolution: minRes};
this.WMSManager.map.setOptions(options) ;
}
if(overlayButton.checked){
var layer = new OpenLayers.Layer.WMS( title,
- url, {layers: layer,format: "image/png",TRANSPARENT: "true", EXCEPTIONS: exception} );
+ url, {layers: layer,format: "image/png",TRANSPARENT: "TRUE", EXCEPTIONS: exception} );
layer.isBaseLayer = false;
//layer.TRANSPARENT = true;
this.WMSManager.map.addLayer(layer);
Modified: sandbox/ominiverdi/openlayers/theme/default/style.css
===================================================================
--- sandbox/ominiverdi/openlayers/theme/default/style.css 2007-05-04 16:54:54 UTC (rev 3135)
+++ sandbox/ominiverdi/openlayers/theme/default/style.css 2007-05-06 21:14:51 UTC (rev 3136)
@@ -181,3 +181,31 @@
background-color:rgb(100,100,200);
}
+
+.olLegendLayerDiv{
+ border:1px solid rgb(230,230,240);
+margin:0.1em;
+margin-right:5px;
+padding:0.2em;
+
+}
+.olLegendLayerOpacity {
+
+margin-left:0.2em;
+margin-right:0.2em;
+}
+.olLegendLayerOpacity {
+color:white;
+text-decoration:none;
+}
+.olLegendLayerDrop{
+color:red;
+margin:0.2em;
+background-color:yellow;
+border:1px solid red;
+
+}
+.olLegendLayerSwitch {
+
+}
+
More information about the Commits
mailing list