Commit 5ad75a0b9f9c67fb8d25b46bba90ecf2dafa2648

Authored by Edmar Moretti
1 parent cf8c8a83

Adicionado o aplicativo ogc.htm que possibilita ao usuário descobrir os endereço…

…s dos serviços OGC disponíveis no menutemas.xml
Showing 2 changed files with 244 additions and 4 deletions   Show diff stats
classesphp/classe_menutemas.php
... ... @@ -174,16 +174,20 @@ array
174 174 foreach($this->xml->TEMA as $temar)
175 175 {
176 176 $down = "nao";
  177 + $ogc = "sim";
177 178 $temp = mb_convert_encoding($temar->DOWNLOAD,"HTML-ENTITIES","auto");
178 179 if (($temp == "sim") || ($temp == "SIM"))
179 180 {$down = "sim";}
  181 + $temp = mb_convert_encoding($temar->OGC,"HTML-ENTITIES","auto");
  182 + if (($temp == "nao") || ($temp == "NAO"))
  183 + {$down = "nao";}
180 184 $link = " ";
181 185 $temp = mb_convert_encoding($temar->TLINK,"HTML-ENTITIES","auto");
182 186 if ($temp != "")
183 187 {$link = $temp;}
184 188 $tid = mb_convert_encoding($temar->TID,"HTML-ENTITIES","auto");
185 189 $nome = mb_convert_encoding($temar->TNOME,"HTML-ENTITIES","auto");
186   - $temasraiz[] = array("tid"=>$tid,"nome"=>$nome,"link"=>$link,"down"=>$down);
  190 + $temasraiz[] = array("tid"=>$tid,"nome"=>$nome,"link"=>$link,"down"=>$down,"ogc"=>$ogc);
187 191 }
188 192 foreach($this->xml->GRUPO as $grupo)
189 193 {
... ... @@ -203,16 +207,20 @@ array
203 207 foreach($grupo->TEMA as $temar)
204 208 {
205 209 $down = "nao";
  210 + $ogc = "sim";
206 211 $temp = mb_convert_encoding($temar->DOWNLOAD,"HTML-ENTITIES","auto");
207 212 if (($temp == "sim") || ($temp == "SIM"))
208 213 {$down = "sim";}
  214 + $temp = mb_convert_encoding($temar->OGC,"HTML-ENTITIES","auto");
  215 + if (($temp == "nao") || ($temp == "NAO"))
  216 + {$ogc = "nao";}
209 217 $link = " ";
210 218 $temp = mb_convert_encoding($temar->TLINK,"HTML-ENTITIES","auto");
211 219 if ($temp != "")
212 220 {$link = $temp;}
213 221 $tid = mb_convert_encoding($temar->TID,"HTML-ENTITIES","auto");
214 222 $nome = mb_convert_encoding($temar->TNOME,"HTML-ENTITIES","auto");
215   - $temas[] = array("tid"=>$tid,"nome"=>$nome,"link"=>$link,"down"=>$down);
  223 + $temas[] = array("tid"=>$tid,"nome"=>$nome,"link"=>$link,"down"=>$down,"ogc"=>$ogc);
216 224 }
217 225 $subgrupos = array();
218 226 foreach($grupo->SGRUPO as $sgrupo)
... ... @@ -230,14 +238,18 @@ array
230 238 {
231 239 //verifica se existem temas que podem receber download
232 240 $down = "nao";
  241 + $ogc = "nao";
233 242 foreach($sgrupo->TEMA as $tema)
234 243 {
235 244 $temp = mb_convert_encoding($tema->DOWNLOAD,"HTML-ENTITIES","auto");
236 245 if (($temp == "sim") || ($temp == "SIM"))
237 246 {$down = "sim";}
  247 + $temp = mb_convert_encoding($temar->OGC,"HTML-ENTITIES","auto");
  248 + if (($temp != "nao") || ($temp != "NAO"))
  249 + {$ogc = "sim";}
238 250 }
239 251 $nome = mb_convert_encoding($sgrupo->SDTIPO,"HTML-ENTITIES","auto");
240   - $subgrupos[] = array("nome"=>$nome,"download"=>$down);
  252 + $subgrupos[] = array("nome"=>$nome,"download"=>$down,"ogc"=>$ogc);
241 253 }
242 254 }
243 255 if (function_exists("mb_convert_encoding"))
... ... @@ -358,6 +370,9 @@ array
358 370 $down = "nao";
359 371 if (($tema->DOWNLOAD == "sim") || ($tema->DOWNLOAD == "SIM"))
360 372 {$down = "sim";}
  373 + $ogc = "sim";
  374 + if (($tema->OGC == "nao") || ($tema->OGC == "NAO"))
  375 + {$ogc = "nao";}
361 376 $link = " ";
362 377 if ($tema->TLINK != "")
363 378 {$link = mb_convert_encoding($tema->TLINK,"HTML-ENTITIES","auto");}
... ... @@ -366,7 +381,7 @@ array
366 381 {$nome = mb_convert_encoding($tema->TNOME,"HTML-ENTITIES","auto");}
367 382 else
368 383 {$nome = $tema->TNOME;}
369   - $temas[] = array("tid"=>$tid,"nome"=>$nome,"link"=>$link,"down"=>$down);
  384 + $temas[] = array("tid"=>$tid,"nome"=>$nome,"link"=>$link,"down"=>$down,"ogc"=>$ogc);
370 385 }
371 386 }
372 387 }
... ...
ogc.htm 0 → 100644
... ... @@ -0,0 +1,225 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
  2 +<html>
  3 +<head>
  4 +<title>WMS</title>
  5 +<meta name="description" content="Mapa interativo do MMA">
  6 +<meta name="keywords" content="WMS OGC mapa sig gis webmapping geo geoprocessamento interativo meio ambiente MMA cartografia geografia">
  7 +<meta name="robots" content="index,follow">
  8 +<!-- Leitura dos arquivos de estilos -->
  9 +<link rel="stylesheet" type="text/css" href="css/geral.css">
  10 +<link rel="stylesheet" type="text/css" href="classesjs/jsobjects/documentation.css">
  11 +<style>
  12 +P
  13 +{COLOR: #2F4632;text-align: justify;font-size: 12px;font-family: Verdana, Arial, Helvetica, sans-serif;}
  14 +#banner
  15 +{position:absolute;top:0px;left:0px;}
  16 +#arvoreTemas
  17 +{overflow:auto;height:400px;width:280px;position:absolute;top:60px;left:0px;}
  18 +#corpo
  19 +{width:425px;position:absolute;top:60px;left:285px;background:rgb(250,250,250);}
  20 +</style>
  21 +<!-- Leitura dos programas javaScript. Pode-se ler os arquivos não compactados, bastando excluir a palavra _compacto -->
  22 +<script src="classesjs/cpaint/cpaint2.inc.compressed.js" type="text/javascript"></script>
  23 +<script type="text/javascript" src="classesjs/jsobjects/jsUI-Global/common.js"></script>
  24 +<script type="text/javascript" src="classesjs/jsobjects/jsUI-Global/uiCommon.js"></script>
  25 +<script type="text/javascript" src="classesjs/jsobjects/jsUI-Treeview/component.js"></script>
  26 +</head>
  27 +<body style="background-color:white">
  28 +
  29 +<div id=banner ><img src="imagens/barrasuperior_geradordelinks_2006.jpg" width="765" ></div>
  30 +
  31 +<!-- aqui vai o menu de opções -->
  32 +<div id=arvoreTemas >
  33 +<!--<span style='text-align:left' >Veja também os dados referentes ao mapeamento dos remanescentes de vegetação dos biomas brasileiros:
  34 +<a href="http://mapas.mma.gov.br/mapas/aplic/probio/datadownload.htm" >link</a>
  35 +</span><br><br> -->
  36 +</div>
  37 +<!-- aqui vai o corpo da aplicação -->
  38 +<div id=corpo style="background-color:rgb(250,250,250)">
  39 +<H1>Download de dados geogr&aacute;ficos</H1>
  40 +<p>Navegue pela &aacute;rvore ao lado para localizar o tema desejado para download.
  41 +<p>Ao lado do nome de cada tema est&aacute; dispon&iacute;vel um link para a documenta&ccedil;&atilde;o dos dados.
  42 +<p>Apenas os dados armazenados no servidor de arquivos do I3Geo, e autorizados pela fonte produtora ou obtidos de locais p&uacute;blicos, est&atilde;o dispon&iacute;veis para download.
  43 +<p>Caso exista interesse por algum outro arquivo n&atilde;o listado aqui, entre em contato com webmaster@mma.gov.br
  44 +<p>Dependendo do tr&aacute;fego na web, o download pode n&atilde;o operar corretamente. Ap&oacute;s escolhido o tema, ser&aacute; gerado um tema no formato "shape file".
  45 +O formato "shape file" &eacute; composto por tr&ecirc;s arquivos (shp, shx e dbf) que devem ser obtidos separadamente e armazenados em um mesmo local em seu disco r&iacute;gido.
  46 +<p>Para abrir o "shape file", voc&ecirc; poder&aacute; utilizar softwares livres como o
  47 + <a href="http://www.gvsig.gva.es/index.php?id=gvsig&L=0" target=blank>GVSIG</a>, <a href="http://qgis.org/" target=blank > QGIS</a>, ou <a href="http://jump-pilot.sourceforge.net/OpenJUMP.html" target=blank >JUMP</a>.
  48 +<p>Conhe&ccedil;a tamb&eacute;m o <a href="http://mapas.mma.gov.br/i3geo/ms_criamapa.php" target=blank >mapa interativo do MMA.</a>
  49 +</div>
  50 +
  51 +</body>
  52 +<script>
  53 +/*
  54 +Title: Ajuda OGC
  55 +
  56 +Ajuda o usuário a escolher .
  57 +
  58 +A lista de dados pode vir do arquivo menutemas.xml ou de um diretório no servidor.
  59 +
  60 +File: datadownload.js
  61 +About: Licença
  62 +
  63 +I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  64 +
  65 +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
  66 +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
  67 +
  68 +Este programa é software livre; você pode redistribuí-lo
  69 +e/ou modificá-lo sob os termos da Licença Pública Geral
  70 +GNU conforme publicada pela Free Software Foundation;
  71 +tanto a versão 2 da Licença.
  72 +Este programa é distribuído na expectativa de que seja útil,
  73 +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
  74 +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
  75 +Consulte a Licença Pública Geral do GNU para mais detalhes.
  76 +Você deve ter recebido uma cópia da Licença Pública Geral do
  77 +GNU junto com este programa; se não, escreva para a
  78 +Free Software Foundation, Inc., no endereço
  79 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  80 +*/
  81 +g_locaplic = "."
  82 +g_arvoreClicks = ""
  83 +var p = "classesphp/mapa_controle.php?funcao=pegalistadegrupos&map_file=''";
  84 +var cp = new cpaint();
  85 +//cp.set_debug(2)
  86 +cp.set_response_type("JSON");
  87 +cp.call(p,"pegaListaDeGrupos",processaGrupos);
  88 +
  89 +/*
  90 +Function: processaGrupos
  91 +
  92 +Recebe os dados da função Ajax com a lista de grupos e subgrupos.
  93 +
  94 +Monta a árvore para adição de um novo tema no mapa.
  95 +
  96 +Parameters:
  97 +
  98 +retorno - string formatada com os dados para montagem da árvore.
  99 +*/
  100 +function processaGrupos(retorno)
  101 +{
  102 + if ((retorno.data != "erro") && (retorno.data != undefined))
  103 + {
  104 + mytreeview2 = new Object();
  105 + mytreeview2 = treeviewNew("mytreeview2", "default", "arvoreTemas", null);
  106 + mytreeview2.createItem("item1", "<b>Temas</b>", "imagens/temas.png", true, true, true, null);
  107 + mytreeview2.itemExpand = expandeGrupo;
  108 + for (ig=0;ig<retorno.data.grupos.length; ig++)
  109 + {
  110 + ogc = "nao";
  111 + //verifica se existe no grupo temas para download
  112 + if (retorno.data.grupos[ig].subgrupos)
  113 + {
  114 + var ngSgrupo = retorno.data.grupos[ig].subgrupos;
  115 + if (retorno.data.grupos[ig].subgrupos)
  116 + {
  117 + for (sg=0;sg<ngSgrupo.length;sg++)
  118 + {
  119 + if (ngSgrupo[sg].ogc == "sim")
  120 + {ogc = "sim"}
  121 + }
  122 + }
  123 + if (ogc == "sim")
  124 + {
  125 + var nomeGrupo = retorno.data.grupos[ig].nome;
  126 + mytreeview2.createItem("grupo"+ig, nomeGrupo, "imagens/folder-s.gif", true, true, true, "item1");
  127 + var cor = "rgb(230,230,230)";
  128 + for (sg=0;sg<ngSgrupo.length;sg++)
  129 + {
  130 + if (ngSgrupo[sg].ogc == "sim")
  131 + {
  132 + var nomeSgrupo = "<span style='background-color:"+cor+"' >"+ngSgrupo[sg].nome+"</span>";
  133 + mytreeview2.createItem("sgrupo_"+ig+"_"+sg, nomeSgrupo, "imagens/branco0.gif", true, true, false, "grupo"+ig);
  134 + if (cor == "rgb(230,230,230)"){var cor = "rgb(255,255,255)";}
  135 + else
  136 + {var cor = "rgb(230,230,230)";}
  137 + }
  138 + }
  139 + }
  140 + }
  141 + }
  142 + }
  143 +}
  144 +/*
  145 +Function: expandeGrupo
  146 +
  147 +Chama a função ajax que pega a lista de temas de um subgrupo no menu de temas.
  148 +
  149 +Parameters:
  150 +
  151 +itemID - string Id do nó que foi expandido na árvore de grupos e subgrupos.
  152 +*/
  153 +function expandeGrupo(itemID)
  154 +{
  155 + g_arvoreClick = itemID;
  156 + if ((itemID.search("sgrupo") > -1) && (g_arvoreClicks.search(itemID) == -1 ))
  157 + {
  158 + var codigos = itemID.split("_");
  159 + var p = g_locaplic+"/classesphp/mapa_controle.php?map_file=''&funcao=pegalistadetemas&grupo="+codigos[1]+"&subgrupo="+codigos[2];
  160 + var cp = new cpaint();
  161 + //cp.set_debug(2);
  162 + cp.set_response_type("json");
  163 + cp.call(p,"pegaListaDeTemas",processaTemas);
  164 + }
  165 +}
  166 +/*
  167 +Function: processaTemas
  168 +
  169 +Recebe os dados da função Ajax com a lista de temas de um subgrupo.
  170 +
  171 +Monta a árvore para adição de um novo tema no mapa.
  172 +
  173 +Parameters:
  174 +
  175 +retorno - string formatada com os dados para montagem da árvore.
  176 +*/
  177 +function processaTemas(retorno)
  178 +{
  179 + if ((retorno.data != "erro") && (retorno.data != undefined))
  180 + {
  181 + var cor = "rgb(251,246,184)";
  182 + for (st=0;st<retorno.data.temas.length; st++)
  183 + {
  184 + var inp = "";
  185 + var nome = retorno.data.temas[st].nome;
  186 + var lk = "";
  187 + if (retorno.data.temas[st].link != " ")
  188 + {var lk = "<a href="+retorno.data.temas[st].link+" target=blank>&nbsp;fonte</a>";}
  189 + if (retorno.data.temas[st].ogc=="sim")
  190 + {
  191 + var inp = "<img style='text-align:left;' src="+g_locaplic+"/imagens/tic.png />";
  192 + nomeTema = "<span style='text-align:left;' title='clique para ver' onclick='endereco(\""+retorno.data.temas[st].tid+"\")' style='cursor:pointer;background-color:"+cor+"' >"+inp+nome+lk+"</span>";
  193 + mytreeview2.createItem("tema"+ig+""+sg+""+st, nomeTema, g_locaplic+"/imagens/branco0.gif", false, true, true, g_arvoreClick);
  194 + if (cor == "rgb(251,246,184)"){var cor = "rgb(255,255,255)";}
  195 + else
  196 + {var cor = "rgb(251,246,184)";}
  197 + }
  198 + }
  199 + //inclui um item em branco
  200 + mytreeview2.createItem("vazio", "", g_locaplic+"/imagens/branco0.gif", false, true, true, g_arvoreClick);
  201 + g_arvoreClicks += ","+g_arvoreClick;
  202 + }
  203 +}
  204 +/*
  205 +Function: endereco
  206 +
  207 +Gera o endereço do webservice do tema escolhido
  208 +
  209 +Parameters:
  210 +
  211 +tema - tema para download
  212 +*/
  213 +function endereco(tema)
  214 +{
  215 + ins = "<H1>Endere&ccedil;o do web service:</H1><br>"
  216 + var re = new RegExp(".htm", "g");
  217 + var servico = window.location.href.replace(re,'.php?tema=')+tema
  218 + ins += "<p>"+servico
  219 + ins += "<p><a target=blank href='"+servico+"&service=wms&version=1.1.0&request=getmap&layers="+tema+"' />testar</a>"
  220 + document.getElementById("corpo").innerHTML = ins
  221 +}
  222 +
  223 +
  224 +</script>
  225 +</html>
... ...