[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>&gt;</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>&lt;</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>&uarr;</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>&darr;</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