0)return substr($s,$c+1); return $s; } class wmc { var $wmc_id; var $wmc_version; var $wmc_windowWidth; var $wmc_windowHeight; var $wmc_bBox_SRS; var $wmc_bBox_minx; var $wmc_bBox_maxx; var $wmc_bBox_miny; var $wmc_bBox_maxy; var $wmc_name; var $wmc_title; var $wmc_abstract; var $wmc_logourl; var $wmc_logourl_format; var $wmc_logourl_type; var $wmc_logourl_width; var $wmc_logourl_height; var $wmc_descriptionurl; var $wmc_descriptionurl_format; var $wmc_descriptionurl_type; var $wmc_keyword = array(); var $wmc_contactposition; var $wmc_contactvoicetelephone; var $wmc_contactemail; var $wmc_contactfacsimiletelephone; var $wmc_contactperson; var $wmc_contactorganization; var $wmc_contactaddresstype; var $wmc_contactaddress; var $wmc_contactcity; var $wmc_contactstateorprovince; var $wmc_contactpostcode; var $wmc_contactcountry; var $wmc_wms_title = array(); var $wmc_layer_queryable = array(); var $wmc_layer_querylayer = array(); var $wmc_layer_hidden = array(); var $wmc_wms_id = array(); var $wmc_wms_service = array(); var $wmc_wms_version = array(); var $wmc_layer_id = array(); var $wmc_layer_title = array(); var $wmc_layer_name = array(); var $wmc_layer_abstract = array(); var $wmc_layer_srs = array(); var $wmc_wms_serviceURL = array(); var $wmc_layer_format_current = array(); var $wmc_layer_dataurl = array(); var $wmc_layer_metadataurl = array(); var $wmc_layer_minscale = array(); var $wmc_layer_maxscale = array(); var $wmc_layer_format = array(); var $wmc_layer_style_current = array(); var $wmc_layer_style_name = array(); var $wmc_layer_style_title = array(); var $wmc_layer_style_legendurl = array(); var $wmc_layer_style_legendurl_width = array(); var $wmc_layer_style_legendurl_height = array(); var $wmc_layer_style_legendurl_format = array(); var $wmc_layer_style_legendurl_type = array(); var $wmc_layer_style_sld_url = array(); var $wmc_layer_style_sld_type = array(); var $wmc_layer_style_sld_title = array(); var $wmc_wms_count = 0; function wmc() { } function getTitle() { return $this->wmc_title; } function getNumberOfWms () { return $this->wmc_wms_count; } function createObjFromWMC_id($wmc_id){ $con = db_connect(DBSERVER,OWNER,PW); db_select_db(DB, $con); $sql = "SELECT wmc FROM mb_user_wmc WHERE wmc_id = $1"; $v = array($wmc_id); $t = array("s"); $res = db_prep_query($sql, $v, $t); $wmc = db_fetch_array($res); $this->createObjFromWMC_xml($wmc[0]); } function createObjFromWMC_xml($data){ $values = NULL; $tags = NULL; $parser = xml_parser_create(CHARSET); xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0); xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); xml_parser_set_option($parser,XML_OPTION_TARGET_ENCODING,CHARSET); xml_parse_into_struct($parser,$data,$values,$tags); $code = xml_get_error_code ($parser); if ($code) { $line = xml_get_current_line_number($parser); $mb_exception = new mb_exception(xml_error_string($code) . " in line " . $line); return false; } xml_parser_free($parser); $section = NULL; $format = NULL; $cnt_format = 0; $parent = array(); $myParent = array(); $cnt_layer = -1; $request = NULL; $layer_style = array(); $cnt_style = -1; $extension = false; $general = false; $layerlist = false; $layer = false; $formatlist = false; $metadataurl = false; $dataurl = false; $stylelist = false; foreach ($values as $element) { if(strtoupper($element[tag]) == "VIEWCONTEXT" && $element[type] == "open"){ $this->wmc_id = $element[attributes]["id"]; $this->wmc_version = $element[attributes]["version"]; } if(strtoupper($element[tag]) == "GENERAL" && $element[type] == "open"){ $general = true; } if(strtoupper($element[tag]) == "LAYERLIST" && $element[type] == "open"){ $layerlist = true; } if ($general) { if(strtoupper($element[tag]) == "WINDOW"){ $this->wmc_windowWidth = $element[attributes]["width"]; $this->wmc_windowHeight = $element[attributes]["height"]; } if(strtoupper($element[tag]) == "BOUNDINGBOX"){ $this->wmc_bBox_SRS = $element[attributes]["SRS"]; $this->wmc_bBox_minx = $element[attributes]["minx"]; $this->wmc_bBox_miny = $element[attributes]["miny"]; $this->wmc_bBox_maxx = $element[attributes]["maxx"]; $this->wmc_bBox_maxy = $element[attributes]["maxy"]; } if(strtoupper($element[tag]) == "NAME"){ $this->wmc_name = $element[value]; } if(strtoupper($element[tag]) == "TITLE"){ $this->wmc_title = $element[value]; } if(strtoupper($element[tag]) == "ABSTRACT"){ $this->wmc_abstract = $element[value]; } if(strtoupper($element[tag]) == "CONTACTINFORMATION" && $element['type'] == "open"){ $contactinformation = true; } if ($contactinformation) { if(strtoupper($element[tag]) == "CONTACTPOSITION"){ $this->wmc_contactposition = $element[value]; } if(strtoupper($element[tag]) == "CONTACTVOICETELEPHONE"){ $this->wmc_contactvoicetelephone = $element[value]; } if(strtoupper($element[tag]) == "CONTACTFACSIMILETELEPHONE"){ $this->wmc_contactfacsimiletelephone = $element[value]; } if(strtoupper($element[tag]) == "CONTACTELECTRONICMAILADDRESS"){ $this->wmc_contactemail = $element[value]; } if(strtoupper($element[tag]) == "CONTACTPERSONPRIMARY" && $element['type'] == "open"){ $contactpersonprimary = true; } if ($contactpersonprimary) { if(strtoupper($element[tag]) == "CONTACTPERSON"){ $this->wmc_contactperson = $element[value]; } if(strtoupper($element[tag]) == "CONTACTORGANIZATION"){ $this->wmc_contactorganization = $element[value]; } if(strtoupper($element[tag]) == "CONTACTPERSONPRIMARY" && $element['type'] == "close"){ $contactpersonprimary = false; } } if(strtoupper($element[tag]) == "CONTACTADDRESS" && $element['type'] == "open"){ $contactaddress = true; } if ($contactaddress) { if(strtoupper($element[tag]) == "ADDRESSTYPE"){ $this->wmc_contactaddresstype = $element[value]; } if(strtoupper($element[tag]) == "ADDRESS"){ $this->wmc_contactaddress = $element[value]; } if(strtoupper($element[tag]) == "CITY"){ $this->wmc_contactcity = $element[value]; } if(strtoupper($element[tag]) == "STATEORPROVINCE"){ $this->wmc_contactstateorprovince = $element[value]; } if(strtoupper($element[tag]) == "POSTCODE"){ $this->wmc_contactpostcode = $element[value]; } if(strtoupper($element[tag]) == "COUNTRY"){ $this->wmc_contactcountry = $element[value]; } if(strtoupper($element[tag]) == "CONTACTADDRESS" && $element['type'] == "close"){ $contactaddress = false; } } } if(strtoupper($element[tag]) == "LOGOURL" && $element['type'] == "open"){ $logourl = true; $this->wmc_logourl_width = $element[attributes]["width"]; $this->wmc_logourl_height = $element[attributes]["height"]; $this->wmc_logourl_format = $element[attributes]["format"]; } if ($logourl) { if(strtoupper($element[tag]) == "LOGOURL" && $element['type'] == "close"){ $logourl = false; } if(strtoupper($element[tag]) == "ONLINERESOURCE"){ $this->wmc_logourl_type = $element[attributes]["xlink:type"]; $this->wmc_logourl = $element[attributes]["xlink:href"]; } } if(strtoupper($element[tag]) == "DESCRIPTIONURL" && $element['type'] == "open"){ $descriptionurl = true; $this->wmc_descriptionurl_format = $element[attributes]["format"]; } if ($descriptionurl) { if(strtoupper($element[tag]) == "DESCRIPTIONURL" && $element['type'] == "close"){ $descriptionurl = false; } if(strtoupper($element[tag]) == "ONLINERESOURCE"){ $this->wmc_descriptionurl_type = $element[attributes]["xlink:type"]; $this->wmc_descriptionurl = $element[attributes]["xlink:href"]; } } if(strtoupper($element[tag]) == "KEYWORDLIST" && $element['type'] == "open"){ $keywordlist = true; } if ($keywordlist) { if(strtoupper($element[tag]) == "KEYWORDLIST" && $element['type'] == "close"){ $keywordlist = false; $cnt_keyword = -1; } if(strtoupper($element[tag]) == "KEYWORD"){ $cnt_keyword++; $this->wmc_keyword[$cnt_keyword] = $element[value]; } } if(strtoupper($element[tag]) == "GENERAL" && $element['type'] == "close"){ $general = false; } } if ($layerlist) { if(strtoupper($element[tag]) == "LAYERLIST" && $element['type'] == "close"){ $layerlist = false; } if(strtoupper($element[tag]) == "LAYER" && $element[type] == "open"){ $cnt_layer++; $this->wmc_layer_queryable[$cnt_layer] = $element[attributes]["queryable"]; $this->wmc_layer_hidden[$cnt_layer] = $element[attributes]["hidden"]; $layer = true; $cnt_epsg = 0; } if ($layer) { if(strtoupper($element[tag]) == "LAYER" && $element[type] == "close"){ $layer = false; } if ($formatlist) { if(strtoupper($element[tag]) == "FORMAT"){ $cnt_format++; $this->wmc_layer_format_current[$cnt_layer][$cnt_format] = $element[attributes]["current"]; $this->wmc_layer_format[$cnt_layer][$cnt_format] = $element[value]; } if(strtoupper($element[tag]) == "FORMATLIST" && $element[type] == "close"){ $formatlist = false; } } elseif ($metadataurl) { if(strtoupper($element[tag]) == "ONLINERESOURCE"){ $this->wmc_layer_metadataurl[$cnt_layer] = $element[attributes]["xlink:href"]; } if(strtoupper($element[tag]) == "METADATAURL" && $element[type] == "close"){ $metadataurl = false; } } elseif ($dataurl) { if(strtoupper($element[tag]) == "ONLINERESOURCE"){ $this->wmc_layer_dataurl[$cnt_layer] = $element[attributes]["xlink:href"]; } if(strtoupper($element[tag]) == "DATAURL" && $element[type] == "close"){ $dataurl = false; } } elseif ($stylelist) { if(strtoupper($element[tag]) == "STYLE" && $element[type] == "open"){ $cnt_style++; $style = true; $this->wmc_layer_style_current[$cnt_layer][$cnt_style] = $element[attributes]["current"]; } if ($style) { if(strtoupper($element[tag]) == "STYLE" && $element[type] == "close"){ $style = false; } if(strtoupper($element[tag]) == "SLD" && $element[type] == "open"){ $sld = true; } if ($sld) { if(strtoupper($element[tag]) == "SLD" && $element[type] == "close"){ $sld = false; } if(strtoupper($element[tag]) == "ONLINERESOURCE"){ $this->wmc_layer_style_sld_type[$cnt_layer][$cnt_style] = $element[attributes]["xlink:type"]; $this->wmc_layer_style_sld_url[$cnt_layer][$cnt_style] = $element[attributes]["xlink:href"]; } if(strtoupper($element[tag]) == "TITLE"){ $this->wmc_layer_style_sld_title[$cnt_layer][$cnt_style] = $element[value]; } } else { if(strtoupper($element[tag]) == "NAME"){ $this->wmc_layer_style_name[$cnt_layer][$cnt_style] = $element[value]; } if(strtoupper($element[tag]) == "TITLE"){ $this->wmc_layer_style_title[$cnt_layer][$cnt_style] = $element[value]; } if(strtoupper($element[tag]) == "LEGENDURL" && $element[type] == "open"){ $legendurl = true; $this->wmc_layer_style_legendurl_width[$cnt_layer][$cnt_style] = $element[attributes]["width"]; $this->wmc_layer_style_legendurl_height[$cnt_layer][$cnt_style] = $element[attributes]["height"]; $this->wmc_layer_style_legendurl_format[$cnt_layer][$cnt_style] = $element[attributes]["format"]; } if ($legendurl) { if(strtoupper($element[tag]) == "LEGENDURL" && $element[type] == "close"){ $legendurl = false; } if(strtoupper($element[tag]) == "ONLINERESOURCE"){ $this->wmc_layer_style_legendurl_type[$cnt_layer][$cnt_style] = $element[attributes]["xlink:type"]; $this->wmc_layer_style_legendurl[$cnt_layer][$cnt_style] = $element[attributes]["xlink:href"]; } } } } if(strtoupper($element[tag]) == "STYLELIST" && $element[type] == "close"){ $stylelist = false; } } else { if(strtoupper($element[tag]) == "SERVER" && $element[type] == "open"){ $server = true; $this->wmc_wms_service[$cnt_layer] = $element[attributes]["service"]; $this->wmc_wms_version[$cnt_layer] = $element[attributes]["version"]; $this->wmc_wms_title[$cnt_layer] = $element[attributes]["title"]; } if ($server) { if(strtoupper($element[tag]) == "SERVER" && $element[type] == "close"){ $server = false; } if(strtoupper($element[tag]) == "ONLINERESOURCE"){ $this->wmc_wms_serviceURL[$cnt_layer] = $element[attributes]["xlink:href"]; } } if(strtoupper($element[tag]) == "NAME"){ $this->wmc_layer_name[$cnt_layer] = $element[value]; } if(strtoupper($element[tag]) == "TITLE"){ $this->wmc_layer_title[$cnt_layer] = $element[value]; } if(strtoupper($element[tag]) == "ABSTRACT"){ $this->wmc_layer_abstract[$cnt_layer] = $element[value]; } if(strtoupper($element[tag]) == "SRS"){ $epsgArray = explode(" ", $element[value]); for ($c = 0 ; $c < count($epsgArray) ; $c ++) { $this->wmc_layer_srs[$cnt_layer][$cnt_epsg] = $epsgArray[$c]; $cnt_epsg++; } } if (strtoupper($element[tag]) == "EXTENSION" && $element[type] == "open") { $extension = true; } if (strtoupper($element[tag]) == "EXTENSION" && $element[type] == "close") { $extension = false; } if($extension == true && strtoupper(sepNameSpace($element[tag])) == "SCALEHINT"){ $this->wmc_layer_minscale[$cnt_layer] = $element[attributes]["min"]; $this->wmc_layer_maxscale[$cnt_layer] = $element[attributes]["max"]; } if($extension == true && strtoupper(sepNameSpace($element[tag])) == "LAYER_ID"){ $this->wmc_layer_id[$cnt_layer] = $element[value]; } if($extension == true && strtoupper(sepNameSpace($element[tag])) == "WMS_ID"){ $this->wmc_wms_id[$cnt_layer] = $element[value]; } if($extension == true && strtoupper(sepNameSpace($element[tag])) == "QUERYLAYER"){ $this->wmc_layer_querylayer[$cnt_layer] = $element[value]; } if(strtoupper(sepNameSpace($element[tag])) == "METADATAURL" && $element[type] == "open"){ $metadataurl = true; } if(strtoupper(sepNameSpace($element[tag])) == "DATAURL" && $element[type] == "open"){ $dataurl = true; } if(strtoupper(sepNameSpace($element[tag])) == "FORMATLIST" && $element[type] == "open"){ $formatlist = true; $cnt_format = -1; } if(strtoupper(sepNameSpace($element[tag])) == "STYLELIST" && $element[type] == "open"){ $stylelist = true; $cnt_style = -1; } } } } } return true; } function createJsObjFromWMC($target, $mapObj, $action){ $wmc_string = ""; $validActions = array("load", "merge", "append"); if (!in_array($action, $validActions)) { $wmc_string .= "alert('invalid action: ".$action."');"; } else { $wmc_string .= "var index = " . $target . "getMapObjIndexByName('" . $mapObj . "');\n"; if ($action == "load") { // delete all previous wms $wmc_string .= "while(" . $target . "mb_mapObj[index].wms.length > 0){" . $target . "mb_mapObjremoveWMS(index,0);}"; $wmc_string .= $target . "deleteWmsObject();\n"; } if ($action == "merge") { $wmc_string .= "var wms_exists = false;\n"; // true if this wms exists in the mapObj $wmc_string .= "var current_wms_index = null;\n"; // if wms_exists: index of the wms in the map obj; else: null $wmc_string .= "var layer_exists = false;\n"; // true if this layer exists in an existing wms of the mapObj $wmc_string .= "var current_layer_index = null;\n"; // if layer_exists: index of the layer of the wms in the mapObj; else: null } $new_wms = ""; $cnt_wms = -1; $added_wms = array(); // for all layers in wmc, find individual wms... for ($i = 0; $i < count($this->wmc_layer_title); $i++) { $current_wms = $this->wmc_wms_serviceURL[$i]; // ...this is something like 'for every wms' if (!in_array($current_wms , $added_wms)) { $layerlist = ""; $querylayerlist = ""; $srs_array = array(); if ($action == "merge") { $wmc_string .= "wms_exists = false;\n"; $wmc_string .= "current_wms_index = null;\n"; $wmc_string .= "for (var m=0; m < " . $target . "mb_mapObj[index].wms.length; m++) {\n"; $wmc_string .= "\tif ('" . $this->wmc_wms_serviceURL[$i] . "' == " . $target . "mb_mapObj[index].wms[m].wms_getmap) {\n"; $wmc_string .= "\t\twms_exists = true;\n"; $wmc_string .= "\t\tcurrent_wms_index = m;\n"; $wmc_string .= "\t}\n"; $wmc_string .= "}\n"; $wmc_string .= "if (!wms_exists) {\n"; } $mywms = new wms(); if(!$this->wmc_layer_title[$i] || $this->wmc_layer_title[$i] == ""){ echo "alert('Error: no valid capabilities-document !!');\n"; die; exit; } for($j=0;$jwmc_layer_format[$i]);$j++){ if ($this->wmc_layer_format_current[$i][$j] == 1) { $wms_data_format = $this->wmc_layer_format[$i][$j]; } } // add wms $wmc_string .= "\t" . $target . "add_wms('','". $this->wmc_wms_version[$i] ."','". $this->wmc_wms_title[$i] ."','". $this->wmc_layer_abstract[$i] ."','". $this->wmc_wms_serviceURL[$i] ."','" . $this->wmc_wms_serviceURL[$i] ."','" . $this->wmc_layer_style_legendurl[$i][0] ."','','". $wms_data_format ."','text/html','application/vnd.ogc.se_xml','". $this->wmc_bBox_SRS ."','1');\n"; $added_wms[count($added_wms)] = $current_wms; $cnt_wms++; $cnt_layers = 0; $cnt_query_layers = 0; if ($action == "merge") { $wmc_string .= "}\n"; } // add epsg $wmc_string .= $target . "wms_addSRS('". $this->wmc_bBox_SRS ."','". $this->wmc_bBox_minx ."','". $this->wmc_bBox_miny ."','". $this->wmc_bBox_maxx ."','". $this->wmc_bBox_maxy ."','". "');\n"; // for each layer... for ($ii = 0; $ii < count($this->wmc_layer_title); $ii++) { $layer_wms = $this->wmc_wms_serviceURL[$ii]; // ... of this wms if ($current_wms == $layer_wms) { // add format (FIXME: is this working?) $z = count($this->wmc_layer_format[$ii]); for($j=0;$j<$z;$j++){ $wmc_string .= $target . "wms_add_data_type_format('map','". $this->wmc_layer_format[$ii][$j] ."');\n"; } if ($cnt_layers == 0) { if ($action == "merge") { $wmc_string .= "if (!wms_exists) {\n\t"; } // add parent layer $wmc_string .= $target . "wms_add_layer('','".$this->wmc_layer_id[$i]."','','". $this->wmc_wms_title[$i] ."','','0','0','0','0','','".$this->wmc_wms_id[$i]."','1','1','1','0','0','0','0');\n"; if ($action == "merge") { $wmc_string .= "}\n"; } } $cnt_layers++; if ($action == "merge") { $wmc_string .= "if (wms_exists) {\n"; // check if this layer already exists in this wms $wmc_string .= "\tlayer_exists = false;\n"; $wmc_string .= "\tcurrent_layer_index = null;\n"; $wmc_string .= "\tfor (var m=0; m < " . $target . "mb_mapObj[index].wms[current_wms_index].objLayer.length; m++) {\n"; $wmc_string .= "\t\tif ('" . $this->wmc_layer_name[$ii] . "' == " . $target . "mb_mapObj[index].wms[current_wms_index].objLayer[m].layer_name) {\n"; $wmc_string .= "\t\t\tlayer_exists = true;\n"; $wmc_string .= "\t\t\tcurrent_layer_index = m;\n"; $wmc_string .= "\t\t}\n"; $wmc_string .= "\t}\n"; $wmc_string .= "\tif (layer_exists) {\n"; // check if the visibility or the queryability are different to the existing layer $wmc_string .= "\t\tif (" . $target . "mb_mapObj[index].wms[current_wms_index].objLayer[current_layer_index].gui_layer_visible != '" . intval(!$this->wmc_layer_hidden[$ii]) . "'"; $wmc_string .= " || " . $target . "mb_mapObj[index].wms[current_wms_index].objLayer[current_layer_index].gui_layer_querylayer != '" . $this->wmc_layer_queryable[$ii] . "') {\n"; // if yes, update the visibility and queryability $wmc_string .= "\t\t\t" . $target . "mb_mapObj[index].wms[current_wms_index].objLayer[current_layer_index].gui_layer_visible = " . intval(!$this->wmc_layer_hidden[$ii]) . ";\n"; $wmc_string .= "\t\t\t" . $target . "mb_mapObj[index].wms[current_wms_index].objLayer[current_layer_index].gui_layer_querylayer = " . $this->wmc_layer_queryable[$ii] . ";\n"; $wmc_string .= "\t\t}\n"; $wmc_string .= "\t}\n"; $wmc_string .= "}\n"; $wmc_string .= "\telse {\n"; } // add layer $wmc_string .= "\t" . $target . "wms_add_layer('0','". $this->wmc_layer_id[$ii] . "','". $this->wmc_layer_name[$ii] . "','". $this->wmc_layer_title[$ii] ."','". $this->wmc_layer_dataurl[$ii] . "','". intval($cnt_layers) ."','". $this->wmc_layer_queryable[$ii] ."','". $this->wmc_layer_minscale[$ii] ."','". $this->wmc_layer_maxscale[$ii] ."','". $this->wmc_layer_metadataurl[$ii] ."','". $this->wmc_wms_id[$ii] ."','1','1','". intval(!$this->wmc_layer_hidden[$ii]) ."','". $this->wmc_layer_queryable[$ii] ."','". $this->wmc_layer_querylayer[$ii] ."','". $this->wmc_layer_minscale[$ii] ."','". $this->wmc_layer_maxscale[$ii] ."');\n"; if ($action == "merge") { $wmc_string .= "\t}\n"; } // if layer is queryable, add it to querylayerlist if ($this->wmc_layer_queryable[$ii]) { $cnt_query_layers++; if (!in_array($this->wmc_layer_name[$ii], explode(",",$querylayerlist))) { if ($querylayerlist == "") {$querylayerlist = $this->wmc_layer_name[$ii];} else {$querylayerlist .= "," . $this->wmc_layer_name[$ii];} } } // if layer is visible, add it to layerlist if (intval(!$this->wmc_layer_hidden[$ii]) && !in_array($this->wmc_layer_name[$ii], explode(",",$layerlist))) { if ($layerlist == "") {$layerlist = $this->wmc_layer_name[$ii];} else {$layerlist .= "," . $this->wmc_layer_name[$ii];} } // add layer style (FIXME: is this working?) for($j=0; $jwmc_layer_style_name[$ii]);$j++){ $wmc_string .= $target . "wms_addLayerStyle('".$this->wmc_layer_style_name[$ii][$j] ."','".$this->wmc_layer_style_title[$ii][$j] ."','".$j."','".$cnt_layers."', '" . $this->wmc_layer_style_legendurl[$ii][$j] . "', '" . $this->wmc_layer_style_legendurl_format[$ii][$j] . "');\n"; } } } // add wms to mapObj with all layers and querylayers if ($action == "merge") { $wmc_string .= "if (!wms_exists) {\n"; } $wmc_string .= $target. "mb_mapObjaddWMSwithLayers('" . $mapObj . "', '" . $layerlist . "', '" . $querylayerlist . "');\n"; if ($action == "merge") { $wmc_string .= "}\n"; $wmc_string .= "else {\n"; $wmc_string .= $target. "mb_mapObj[index].layers[current_wms_index] = \"" . $layerlist . "\";\n"; $wmc_string .= $target. "mb_mapObj[index].querylayers[current_wms_index] = \"" . $querylayerlist . "\";\n"; $wmc_string .= "}\n"; } } } $wmc_string .= "var old_mapObj = ".$target."cloneObject(".$target."mb_mapObj);\n"; $wmc_string .= $target . "deleteMapObj();\n"; $wmc_string .= "for (var i=0; iwmc_windowWidth . ", " . $this->wmc_windowHeight . ");\n"; $wmc_string .= "\t\t" . $target . "document.getElementById(old_mapObj[i].frameName).style.width = " . $this->wmc_windowWidth . ";\n"; $wmc_string .= "\t\t" . $target . "document.getElementById(old_mapObj[i].frameName).style.height = " . $this->wmc_windowHeight . ";\n"; $wmc_string .= "\t}\n"; $wmc_string .= "\telse {\n"; $wmc_string .= "\t\tvar found = false;\n"; $wmc_string .= "\t\tfor (var j=0; j < " . $target . "wms.length && found == false; j++) {\n"; $wmc_string .= "\t\t\tif (" . $target . "wms[j].wms_getmap == old_mapObj[i].wms[0].wms_getmap) {\n"; $wmc_string .= "\t\t\t\t" . $target . "mb_registerMapObj('overview', old_mapObj[i].elementName, j, old_mapObj[i].width, old_mapObj[i].height);\n"; $wmc_string .= "\t\t\t\tfound = true;\n"; $wmc_string .= "\t\t\t}\n"; $wmc_string .= "\t\t}\n"; $wmc_string .= "\t\tif (!found) {\n"; $wmc_string .= "\t\t\t" . $target . "mb_registerMapObj('overview', old_mapObj[i].elementName, 0, old_mapObj[i].width, old_mapObj[i].height);\n"; $wmc_string .= "\t\t}\n"; $wmc_string .= "\t}\n"; $wmc_string .= "}\n"; $sql = "SELECT minx, miny, maxx, maxy FROM layer_epsg WHERE fkey_layer_id = $1 AND epsg = $2 LIMIT 1"; $v = array($this->wmc_layer_id[0], $this->wmc_bBox_SRS); $t = array('i', 's'); $res = db_prep_query($sql, $v, $t); $row = db_fetch_array($res); if ($row["minx"] && $row["miny"] && $row["maxx"] && $row["maxy"]) { $ov_bbox = array($row["minx"],$row["miny"],$row["maxx"],$row["maxy"]); } else if ($this->wmc_layer_id[0] && $this->wmc_bBox_SRS){ $ov_bbox = array($this->wmc_bBox_minx, $this->wmc_bBox_miny, $this->wmc_bBox_maxx, $this->wmc_bBox_maxy); } else { $ov_bbox = array(); } $wmc_string .= "for (var i=0; iwmc_bBox_minx .",".$this->wmc_bBox_miny .","; $wmc_string .= $this->wmc_bBox_maxx .",".$this->wmc_bBox_maxy.");\n"; $wmc_string .= "\t}\n"; $wmc_string .= "\telse {\n"; if (count($ov_bbox)>0) { // $wmc_string .= "alert('found bbox for ov: ".implode(',',$ov_bbox)."');"; $wmc_string .= "\t\t".$target."mb_calculateExtent(old_mapObj[i].frameName, "; $wmc_string .= $ov_bbox[0] .",".$ov_bbox[1] .","; $wmc_string .= $ov_bbox[2] .",".$ov_bbox[3] .");\n"; } else { // $wmc_string .= "alert('no bbox found for ov: old bbox ".$this->wmc_bBox_minx." etc');"; $wmc_string .= "\t\t".$target."mb_calculateExtent(old_mapObj[i].frameName, "; $wmc_string .= $this->wmc_bBox_minx .",".$this->wmc_bBox_miny .","; $wmc_string .= $this->wmc_bBox_maxx .",".$this->wmc_bBox_maxy.");\n"; // $wmc_string .= "\t\tvar ov_index = " . $target . "getMapObjIndexByName('overview');\n"; // $wmc_string .= "\t\t" . $target . "mb_mapObj[ov_index].extent = old_mapObj[i].extent;\n"; } $wmc_string .= "\t}\n"; $wmc_string .= "\t". $target . "setMapRequest(old_mapObj[i].frameName);\n"; $wmc_string .= "}\n"; $wmc_string .= $target . "mb_execloadWmsSubFunctions();\n"; } return $wmc_string; } } // end class ?>