function parametrosTemas() { //obtem os dados sobre todos os temas no banco de dados de administracao $dadosTemas = pegaDadosAdminKey("select codigo_tema,link_tema from __esq__i3geoadmin_temas", "__esq__"); $temas = array(); $existesel = false; $dir = dirname($this->arquivo); foreach ($this->layers as $l) { $l->set("template", "none.htm"); } $chaves = array("name", "nomeoriginal", "status", "tema", "transparency", "type", "sel", "nsel", "escala", "download", "features", "connectiontype", "zoomtema", "contextoescala", "etiquetas", "identifica", "editorsql", "linhadotempo", "escondido", "iconetema", "classe", "permitecomentario", "exttema", "aplicaextensao", "transitioneffect", "wmsurl", "wmsname", "wmsformat", "wmssrs", "wmstile", "tiles", "temporizador", "permiteogc", "itembuscarapida", "usasld", "cache", "editavel", "colunaidunico", "cortepixels", "plugini3geo", "link_tema", "ferramentas"); foreach ($this->layers as $oLayer) { $sel = "nao"; $nSel = 0; $arqS = $dir . "/" . $oLayer->name . "_qy.map"; if (file_exists($arqS)) { $sel = "sim"; $existesel = true; $handle = fopen($arqS, "r"); $conteudo = fread($handle, filesize($arqS)); fclose($handle); $nSel = count(unserialize($conteudo)); } $escondido = $oLayer->getmetadata("escondido"); if ($escondido == "") { $escondido = "nao"; } if (strtoupper($oLayer->getmetadata("tema")) != "NAO") { $escala = $oLayer->getmetadata("escala"); if ($escala == "") { $escala = 0; } $down = $oLayer->getmetadata("download"); // //verifica se o layer é do tipo features // $f = "nao"; if ($oLayer->data == "" && $oLayer->connection == "") { $f = "sim"; } $ct = $oLayer->connectiontype; // //verifica se o tema tem wfs // $wfs = $oLayer->getmetadata("wfs"); // //verifica se o tema utiliza SLD // $usasld = "nao"; if ($oLayer->getmetadata("wms_sld_body") !== "" || $oLayer->getmetadata("wms_sld_url") !== "") { $usasld = "sim"; } // //verifica se o tema pode receber a operação de zoom para o tema // if ($ct != 1 && $oLayer->getmetadata("extensao") == "") { $zoomtema = "nao"; $exttema = ""; } else { $zoomtema = "sim"; $exttema = $oLayer->getmetadata("extensao"); } // //verifica se existe restrição de escala // $contextoescala = "nao"; if ($oLayer->minscaledenom > 0 || $oLayer->maxscaledenom > 0) { $contextoescala = "sim"; } // //verifica se o usuário pode editar o SQL em DATA // $editorsql = "nao"; if ($ct == 3 || $ct == 4 || $ct == 6 || $ct == 8) { if (strtoupper($oLayer->getmetadata("editorsql")) != "NAO") { $editorsql = "sim"; } } // //verifica se o tema pode ser utilizado para gerar gráficos de linha do tempo // $ltempo = "nao"; if ($oLayer->getmetadata("ltempoformatodata") !== "") { $ltempo = "sim"; } // //verifica se o tema faz cache automatico // $cache = "nao"; if (strtoupper($oLayer->getmetadata("cache")) == "SIM") { $cache = "sim"; } $cortepixels = 0; if ($oLayer->getmetadata("cortepixels") != "") { $cortepixels = $oLayer->getmetadata("cortepixels"); } // //verifica se o tema receberá efeito de transição de zoom // $transitioneffect = "sim"; if ($oLayer->getmetadata("transitioneffect") == "NAO") { $transitioneffect = "nao"; } // $permitecomentario = "nao"; if ($oLayer->getmetadata("nomeoriginal") != "" && strtoupper($oLayer->getmetadata("permitecomentario")) != "NAO") { $permitecomentario = "sim"; } $aplicaextensao = "nao"; if (strtoupper($oLayer->getmetadata("aplicaextensao")) == "SIM") { $aplicaextensao = "sim"; } $wmsurl = ""; $wmsformat = ""; $wmssrs = ""; $wmstile = ""; if ($ct == 7 && strtoupper($oLayer->getmetadata("cache")) != "SIM") { $wmsurl = $oLayer->connection . "&layers=" . $oLayer->getmetadata("wms_name") . "&style=" . $oLayer->getmetadata("wms_style"); $tempo = $oLayer->getmetadata("wms_time"); if ($tempo != "") { $wmsurl .= "&TIME=" . $tempo; } $wmsformat = $oLayer->getmetadata("wms_format"); $wmssrs = $oLayer->getmetadata("wms_srs"); $wmstile = $oLayer->getmetadata("wms_tile"); $wmsname = $oLayer->getmetadata("wms_name"); if ($wmstile == 1) { $wmsurl = $oLayer->connection; } } // //indica se a camada sera inserida no mapa como singletile ou nao // $tiles = strtolower($oLayer->getmetadata("TILES")); $plugini3geo = ""; if ($oLayer->getmetadata("PLUGINI3GEO") != "") { $plugini3geo = $oLayer->getmetadata("PLUGINI3GEO"); if (!mb_detect_encoding($plugini3geo, "UTF-8", true)) { $plugini3geo = mb_convert_encoding($plugini3geo, "UTF-8", "ISO-8859-1"); } $plugini3geo = json_decode($plugini3geo); } //pega dados do banco $link_tema = ""; $temp = $oLayer->getmetadata("nomeoriginal"); if ($temp != "" && array_key_exists($temp, $dadosTemas)) { $link_tema = $dadosTemas[$temp]; $link_tema = $link_tema["link_tema"]; } //aqui pega o valor link_tema em METADATA //esse METADATA nao e definido pelo i3Geo e teria de ser incluido manualmente, //por uma aplicacao por exemplo if ($link_tema == "" && $oLayer->getmetadata("link_tema") != "") { $link_tema = $oLayer->getmetadata("link_tema"); } //TODO colocar aqui os parametros da linha do tempo??? // //parametros para ferramentas especiaifcas // $ferramentas = array(); //mapa 3d if ($oLayer->getmetadata("tme") != "") { $f = $oLayer->getmetadata("tme"); if (!mb_detect_encoding($f, "UTF-8", true)) { $f = mb_convert_encoding($f, "UTF-8", "ISO-8859-1"); } $ferramentas["tme"] = json_decode($f); } //storymap if ($oLayer->getmetadata("storymap") != "") { $f = $oLayer->getmetadata("storymap"); if (!mb_detect_encoding($f, "UTF-8", true)) { $f = mb_convert_encoding($f, "UTF-8", "ISO-8859-1"); } $ferramentas["storymap"] = json_decode(str_replace("'", '"', $f)); } //animagif if ($oLayer->getmetadata("animagif") != "") { $f = $oLayer->getmetadata("animagif"); if (!mb_detect_encoding($f, "UTF-8", true)) { $f = mb_convert_encoding($f, "UTF-8", "ISO-8859-1"); } $ferramentas["animagif"] = json_decode(str_replace("'", '"', $f)); } $temas[] = array($oLayer->name, $oLayer->getmetadata("nomeoriginal"), $oLayer->status, mb_convert_encoding($oLayer->getmetadata("tema"), "UTF-8", "ISO-8859-1"), $oLayer->opacity, $oLayer->type, $sel, $nSel, $escala, $down, $f, $ct, $zoomtema, $contextoescala, $oLayer->getmetadata("TIP"), $oLayer->getmetadata("IDENTIFICA"), $editorsql, $ltempo, strtolower($escondido), $oLayer->getmetadata("iconetema"), $oLayer->getmetadata("classe"), $permitecomentario, $exttema, $aplicaextensao, $transitioneffect, $wmsurl, $wmsname, $wmsformat, $wmssrs, $wmstile, $tiles, $oLayer->getmetadata("temporizador"), $oLayer->getmetadata("permiteogc"), $oLayer->getmetadata("itembuscarapida"), $usasld, $cache, $oLayer->getmetadata("EDITAVEL"), $oLayer->getmetadata("COLUNAIDUNICO"), $cortepixels, $plugini3geo, $link_tema, $ferramentas); } } //apaga o arquivo qy se não for necessário //if (!$existesel && $qy) //{unlink($this->qyfile);} $temas = array_reverse($temas); return array("chaves" => $chaves, "valores" => $temas); }
$visiveis = $temas; } else { $visiveis = str_replace(" ", ",", $visiveis); $visiveis = explode(",", $visiveis); } $objOpenLayers = array(); if (!isset($servidor)) { $servidor = "../ogc.php"; } // //lista de ferramentas //lista os nomes de metadados que contem os parametros das //ferramentas customizaveis e que seraco incluidas na propriedade do layer // $listaFerramentas = array("tme", "storymap", "animagif"); $dadosTemas = pegaDadosAdminKey("SELECT codigo_tema,link_tema FROM __esq__i3geoadmin_temas WHERE codigo_tema IN('" . implode($temas, ',') . "')", "__esq__"); foreach ($temas as $tema) { // //utilzado para obter os parametros de ferramentas especificas indicadas nos metadados do LAYER // $ferramentas = array(); if (file_exists($locaplic . "/temas/" . $tema . ".gvp")) { include_once $locaplic . "/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"; $gm = new gvsig2mapfile($locaplic . "/temas/" . $tema . ".gvp"); $gvsigview = $gm->getViewsNames(); $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "' . $gvsigview[0] . '", "' . $servidor . '?' . $nocache . 'tema=' . $tema . '&DESLIGACACHE=' . $DESLIGACACHE . '&",{layers:"' . $tema . '",transparent: "true", format: "image/png"},{singleTile:false,visibility:true,isBaseLayer:false, ferramentas :' . $ferramentas . ')'; } else { $nomeMap = ""; if (file_exists($locaplic . "/temas/" . $tema . ".map")) { $nomeMap = $locaplic . "/temas/" . $tema . ".map"; } else {