[Mapbender-commits] r8235 - in branches/2.7/http: classes javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Mon Jan 23 03:32:08 EST 2012


Author: astrid_emde
Date: 2012-01-23 00:32:08 -0800 (Mon, 23 Jan 2012)
New Revision: 8235

Modified:
   branches/2.7/http/classes/class_wms.php
   branches/2.7/http/javascripts/map_obj.js
   branches/2.7/http/javascripts/wms.js
Log:
WMS 1.3.0: parse XML to db, use CRS not SRS in getMap, getFeatureInfos

Modified: branches/2.7/http/classes/class_wms.php
===================================================================
--- branches/2.7/http/classes/class_wms.php	2012-01-23 08:18:59 UTC (rev 8234)
+++ branches/2.7/http/classes/class_wms.php	2012-01-23 08:32:08 UTC (rev 8235)
@@ -567,6 +567,10 @@
 			if(mb_strtoupper($element[tag]) == "WMT_MS_CAPABILITIES" && $element[type] == "open"){
 				$this->wms_version = $element[attributes][version];
 			}
+			//WMS 1.3.0
+			if(mb_strtoupper($element[tag]) == "WMS_CAPABILITIES" && $element[type] == "open"){
+				$this->wms_version = $element[attributes][version];
+			}
 			if(mb_strtoupper($element[tag]) == "TITLE" && $element[level] == '3'){
 				$this->wms_title = $this->stripEndlineAndCarriageReturn($element[value]);
 			}
@@ -909,6 +913,11 @@
 				if(mb_strtoupper($element[tag]) == "SRS"){
 					// unique srs only, see http://www.mapbender.org/index.php/Arrays_with_unique_entries
 					$this->wms_srs = array_keys(array_flip(array_merge($this->wms_srs, explode(" ", strtoupper($element[value])))));
+				}
+				#WMS 1.3.0
+				if(mb_strtoupper($element[tag]) == "CRS"){
+					// unique srs only, see http://www.mapbender.org/index.php/Arrays_with_unique_entries
+					$this->wms_srs = array_keys(array_flip(array_merge($this->wms_srs, explode(" ", strtoupper($element[value])))));
 				}						      
 				if(mb_strtoupper($element[tag]) == "LATLONBOUNDINGBOX"){
 					$cnt_epsg++;
@@ -918,7 +927,8 @@
 					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element[attributes][maxx];
 					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element[attributes][maxy];
 				}
-				if(mb_strtoupper($element[tag]) == "BOUNDINGBOX" && $element[attributes][SRS] != "EPSG:4326"){
+				if(mb_strtoupper($element[tag]) == "BOUNDINGBOX" && $element[attributes][SRS] != "EPSG:4326"
+										&& $this->wms_version != "1.3.0"){
 					$cnt_epsg++;
 					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = $element[attributes][SRS];
 					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element[attributes][minx];
@@ -930,6 +940,30 @@
 						$this->default_epsg = $cnt_epsg;
 					}
 				}
+				#WMS 1.3.0
+				if(mb_strtoupper($element[tag]) == "BOUNDINGBOX" && $element[attributes][CRS] == "EPSG:4326"
+										&& $this->wms_version == "1.3.0"){
+					$cnt_epsg++;
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = $element[attributes][CRS];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element[attributes][minx];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element[attributes][miny];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element[attributes][maxx];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element[attributes][maxy];
+				}
+				#WMS 1.3.0
+				if(mb_strtoupper($element[tag]) == "BOUNDINGBOX" && $element[attributes][CRS] != "EPSG:4326"
+										&& $this->wms_version == "1.3.0"){
+					$cnt_epsg++;
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["epsg"] = $element[attributes][CRS];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["minx"] = $element[attributes][minx];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["miny"] = $element[attributes][miny];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxx"] = $element[attributes][maxx];
+					$this->objLayer[$cnt_layer]->layer_epsg[$cnt_epsg]["maxy"] = $element[attributes][maxy];
+					// a default epsg for mapbender
+					if($cnt_layer == 0 && $this->default_epsg == 0 && mb_strlen(trim($element[attributes][SRS]))>= 10){
+						$this->default_epsg = $cnt_epsg;
+					}
+				}
 				if(mb_strtoupper($element[tag]) == "SCALEHINT"){
 					if($element[attributes][max]>1000) $max = 0; else $max = $element[attributes][max]; 	
 					if($element[attributes][min]>1000) $min = 0; else $min = $element[attributes][min]; 	
@@ -947,6 +981,7 @@
 			$this->wms_status = false;
 			$this->optimizeWMS();
 			$e = new mb_exception("class_wms: createObjFromXML: WMS " . $url . " could not be loaded.");
+			$e = new mb_exception("class_wms: createObjFromXML: WMS " . $data . " could not be loaded.");
 			return false;
 		}
 		else{
@@ -1995,6 +2030,7 @@
 		$t = array('i');
 		$res = db_prep_query($sql,$v,$t);
 		for($j=0; $j<count($this->objLayer[$i]->layer_epsg);$j++){
+#$i."-->".$this->objLayer[$i]->layer_epsg[$j][epsg]."-->minx:".$this->objLayer[$i]->layer_epsg[$j][minx].
 			$sql = "INSERT INTO layer_epsg (fkey_layer_id, epsg, minx, miny, maxx, maxy) ";
 			$sql .= "VALUES($1,$2,$3,$4,$5,$6)";
 			$v = array($this->objLayer[$i]->db_id,$this->objLayer[$i]->layer_epsg[$j][epsg],

Modified: branches/2.7/http/javascripts/map_obj.js
===================================================================
--- branches/2.7/http/javascripts/map_obj.js	2012-01-23 08:18:59 UTC (rev 8234)
+++ branches/2.7/http/javascripts/map_obj.js	2012-01-23 08:32:08 UTC (rev 8235)
@@ -819,7 +819,12 @@
             }
         }
         url += "&";
-        url += "SRS=" + this.epsg + "&";
+        if (currentWms.wms_version != "1.3.0") {
+		url += "SRS=" + this.epsg + "&";
+        }else{
+		url += "CRS=" + this.epsg + "&";
+	}        
+
         url += "BBOX=" + extent.toString() + "&";
         url += "WIDTH=" + this.getWidth() + "&";
         url += "HEIGHT=" + this.getHeight() + "&";

Modified: branches/2.7/http/javascripts/wms.js
===================================================================
--- branches/2.7/http/javascripts/wms.js	2012-01-23 08:18:59 UTC (rev 8234)
+++ branches/2.7/http/javascripts/wms.js	2012-01-23 08:32:08 UTC (rev 8235)
@@ -241,7 +241,11 @@
 	rq += "&QUERY_LAYERS=" + querylayers.join(",");
 	rq += "&WIDTH=" + mapObj.getWidth();
 	rq += "&HEIGHT=" + mapObj.getHeight();
-	rq += "&SRS=" + mapObj.getSRS();
+	if(this.wms_version === "1.3.0"){
+		rq += "&CRS=" + mapObj.getSRS();
+	}else{	
+		rq += "&SRS=" + mapObj.getSRS();
+	}
 	rq += "&BBOX=" + mapObj.getExtent();
 	rq += "&STYLES=" + this.getLayerstyles(mapObj).join(",");
 	rq += "&FORMAT=" + this.gui_wms_mapformat;



More information about the Mapbender_commits mailing list