示例#1
0
 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);
 }
示例#2
0
     $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 {