[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