From be1da2107cb9c144e4524d7c4beeffa3536cc966 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sat, 13 Aug 2011 13:29:54 +0000 Subject: [PATCH] --- classesjs/classe_arvoredetemas.js | 1 - classesjs/classe_configura.js | 8 +++----- classesjs/dicionario_ajuda.js | 18 ++++++++++++++++++ exemplos/guias2.htm | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- ferramentas/identifica/index.js.php | 4 ++-- ferramentas/uploadgpx/index.js.php | 2 +- ferramentas/uploadkml/index.js.php | 141 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ferramentas/uploadkml/upload.php | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ imagens/gisicons/eudock/search.png | Bin 2252 -> 0 bytes interface/openlayers.htm | 2 +- temas/geojs_ogr1.map | 28 ++++++++++++++++++++++++++++ 11 files changed, 372 insertions(+), 14 deletions(-) create mode 100644 ferramentas/uploadkml/index.js.php create mode 100644 ferramentas/uploadkml/upload.php create mode 100644 temas/geojs_ogr1.map diff --git a/classesjs/classe_arvoredetemas.js b/classesjs/classe_arvoredetemas.js index ea12af6..389da24 100644 --- a/classesjs/classe_arvoredetemas.js +++ b/classesjs/classe_arvoredetemas.js @@ -1922,7 +1922,6 @@ i3GEO.arvoreDeTemas = { " " + " KML ou KMZ" + " " + - " "; $i(janela[2].id).innerHTML = ins;; }, diff --git a/classesjs/classe_configura.js b/classesjs/classe_configura.js index 0fa457f..8a66661 100644 --- a/classesjs/classe_configura.js +++ b/classesjs/classe_configura.js @@ -192,12 +192,10 @@ i3GEO.configura = { { id:"omenudataFerramentas0c",text: ''+$trad("a15")+'',url: "#"}, { id:"omenudataFerramentas1c",text: "WMS-T", url: "javascript:i3GEO.arvoreDeTemas.dialogo.conectarwmst()"}, { id:"omenudataFerramentas2c",text: "GeoRSS", url: "javascript:i3GEO.arvoreDeTemas.dialogo.conectargeorss()"}, - { id:"omenudataFerramentas3c",text: "WMS", url: "javascript:i3GEO.arvoreDeTemas.dialogo.conectarwms()"}, + { id:"omenudataFerramentas3c",text: "WMS", url: "javascript:i3GEO.arvoreDeTemas.dialogo.conectarwms()"}, + { id:"omenudataFerramentas4c",text: "KML", url: "javascript:i3GEO.arvoreDeTemas.dialogo.carregaKml()"}, { id:"omenudataFerramentas0d",text: 'Upload',url: "#"}, - { id:"omenudataFerramentas1d",text: "GPX", url: "javascript:i3GEO.arvoreDeTemas.dialogo.uploadgpx()"}, - { id:"omenudataFerramentas2d",text: "DBF", url: "javascript:i3GEO.arvoreDeTemas.dialogo.uploaddbf()"}, - { id:"omenudataFerramentas3d",text: "CSV/TXT", url: "javascript:i3GEO.arvoreDeTemas.dialogo.uploadarquivo()"}, - { id:"omenudataFerramentas4d",text: "Shapefile", url: "javascript:i3GEO.arvoreDeTemas.dialogo.upload()"} + { id:"omenudataFerramentas3d",text: "Vetor (shp,dbf,csv,gpx,kml)", url: "javascript:i3GEO.arvoreDeTemas.dialogo.uploadarquivo()"} ] } }, diff --git a/classesjs/dicionario_ajuda.js b/classesjs/dicionario_ajuda.js index fb07fad..fbede33 100644 --- a/classesjs/dicionario_ajuda.js +++ b/classesjs/dicionario_ajuda.js @@ -875,6 +875,24 @@ g_traducao_ajuda = { complemento:"", tela:"", apijs:"i3GEO.mapa.dialogo.opacidade()" + }, + "103": { + titulo: "Upload de GPX", + diretorio:"i3geo/ferramentas/uploadgpx", + categoria:"4", + pt:"Permite que um arquivo do tipo GPX, normalmente gerado por programas que utilizam GPS, seja enviado ao servidor e incluído no mapa como uma nova camada. O arquivo GPX será armazenado no servidor onde o i3geo está instalado e permanecerá lá até que os arquivos temporários sejam apagados.", + complemento:"Não utilize essa opção se existir alguma restrição ao uso do arquivo e se a política de acesso aos dados, definidas pela entidade que hospeda o i3geo, não for compatívelcom essas restrições.", + tela:"", + apijs:"i3GEO.arvoreDeTemas.dialogo.uploadgpx()" + }, + "104": { + titulo: "Upload de KML", + diretorio:"i3geo/ferramentas/uploadkml", + categoria:"4", + pt:"Permite que um arquivo do tipo KML, seja enviado ao servidor e incluído no mapa como uma nova camada. O arquivo GPX será armazenado no servidor onde o i3geo está instalado e permanecerá lá até que os arquivos temporários sejam apagados.", + complemento:"Não utilize essa opção se existir alguma restrição ao uso do arquivo e se a política de acesso aos dados, definidas pela entidade que hospeda o i3geo, não for compatívelcom essas restrições.", + tela:"", + apijs:"i3GEO.arvoreDeTemas.dialogo.uploadkml()" } } }; diff --git a/exemplos/guias2.htm b/exemplos/guias2.htm index 100444f..707dc66 100644 --- a/exemplos/guias2.htm +++ b/exemplos/guias2.htm @@ -123,12 +123,50 @@
-
Temas
+
+
+
Temas
Adiciona
-
Legenda
-
+
Legenda
-
+ + + + + + + + +
@@ -218,6 +256,7 @@ i3GEO.guias.CONFIGURA.adiciona.titulo = "Mais temas"; //as barras de botoes serão construidas automaticamente, sem precisar de eleemntos HTML i3GEO.barraDeBotoes.AUTO = true i3GEO.configura.iniciaJanelaMensagens = false + i3GEO.guias.CONFIGURA.temas.click = function(){ if($i("listaTemasSanfona").innerHTML === ""){ i3GEO.arvoreDeCamadas.cria("listaTemasSanfona"); @@ -227,6 +266,27 @@ i3GEO.guias.CONFIGURA.temas.click = function(){ {$i("guia1obj").style.display = "block";} } + +i3GEO.guias.CONFIGURA.guiaDeBusca = { + titulo:"Procurar", + id:"guia6", + idconteudo:"guia6obj", + click:"" +}; + + +i3GEO.guias.CONFIGURA.guiaSobre = { + titulo:"Atlas", + id:"guia7", + idconteudo:"guia7obj", + click:"" +}; +i3GEO.guias.CONFIGURA.guiaSobre.click = function(){ + $i("guia7obj").style.display = "block"; +} + +i3GEO.guias.ORDEM = ["guiaSobre","temas","legenda","adiciona","guiaDeBusca"]; +i3GEO.guias.ATUAL = "guiaSobre"; i3GEO.guias.TIPO = "sanfona"; i3GEO.inicia(); diff --git a/ferramentas/identifica/index.js.php b/ferramentas/identifica/index.js.php index ef71c16..971854c 100644 --- a/ferramentas/identifica/index.js.php +++ b/ferramentas/identifica/index.js.php @@ -603,8 +603,8 @@ i3GEOF.identifica = { if($i("i3GEOFidentificaNocorrencias")) {atualN = $i("i3GEOFidentificaNocorrencias").value;} $i("i3GEOF.identifica_corpo").scrollTop = 0; - if(retorno == "") - {$i("i3GEOidentificaocorrencia").innerHTML="Nada encontrado";} + if(retorno == undefined || retorno == "") + {$i("i3GEOidentificaocorrencia").innerHTML="Nada encontrado";return;} var i = $i("i3GEOmarcaIdentifica"); if(i) {i.style.display = "block";} diff --git a/ferramentas/uploadgpx/index.js.php b/ferramentas/uploadgpx/index.js.php index 1ed46c6..513fb49 100644 --- a/ferramentas/uploadgpx/index.js.php +++ b/ferramentas/uploadgpx/index.js.php @@ -107,7 +107,7 @@ i3GEOF.uploadgpx = { minimiza = function(){ i3GEO.janela.minimiza("i3GEOF.uploadgpx"); }; - titulo = "Upload de arquivo GPX    "; + titulo = "Upload de arquivo GPX    "; janela = i3GEO.janela.cria( "320px", "280px", diff --git a/ferramentas/uploadkml/index.js.php b/ferramentas/uploadkml/index.js.php new file mode 100644 index 0000000..641c9d4 --- /dev/null +++ b/ferramentas/uploadkml/index.js.php @@ -0,0 +1,141 @@ + +/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: true */ +/* +Title: Upload KML + +Envia para o servidor um arquivo no formato GPX local e insere como novas camadas no mapa. + +Veja: + + + +Arquivo: + +i3geo/ferramentas/uploadkml/index.js.php + +Licenca: + +GPL2 + +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet + +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br + +Este programa é software livre; você pode redistribuí-lo +e/ou modificá-lo sob os termos da Licença Pública Geral +GNU conforme publicada pela Free Software Foundation; + +Este programa é distribuído na expectativa de que seja útil, +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. +Consulte a Licença Pública Geral do GNU para mais detalhes. +Você deve ter recebido uma cópia da Licença Pública Geral do +GNU junto com este programa; se não, escreva para a +Free Software Foundation, Inc., no endereço +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. +*/ + + +if(typeof(i3GEOF) === 'undefined'){ + i3GEOF = []; +} +/* +Classe: i3GEOF.uploadkml +*/ +i3GEOF.uploadkml = { + /* + Variavel: aguarde + + Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. + */ + aguarde: "", + /* + Function: inicia + + Inicia a ferramenta. É chamado por criaJanelaFlutuante + + Parametro: + + iddiv {String} - id do div que receberá o conteudo HTML da ferramenta + */ + inicia: function(iddiv){ + try{ + $i(iddiv).innerHTML += i3GEOF.uploadkml.html(); + new YAHOO.widget.Button( + "i3GEOuploadkmlbotao1", + {onclick:{fn: i3GEOF.uploadkml.submete}} + ); + i3GEO.util.radioEpsg( + function(retorno) + {$i("i3GEOuploadkmlListaepsg").innerHTML = retorno.dados;}, + "i3GEOuploadkmlListaepsg", + "uploadkml" + ); + } + catch(erro){alert(erro);} + }, + /* + Function: html + + Gera o código html para apresentação das opções da ferramenta + + Retorno: + + String com o código html + */ + html:function(){ + var ins = '
' + + '

Arquivo kml:

' + + '

Projeção:

' + + '
' + + '

' + + '' + + '' + + '

' + + '
'; + return ins; + }, + /* + Function: criaJanelaFlutuante + + Cria a janela flutuante para controle da ferramenta. + */ + criaJanelaFlutuante: function(){ + var janela,divid,temp,titulo,cabecalho,minimiza; + cabecalho = function(){}; + minimiza = function(){ + i3GEO.janela.minimiza("i3GEOF.uploadkml"); + }; + titulo = "Upload de arquivo KML    "; + janela = i3GEO.janela.cria( + "320px", + "280px", + "", + "", + "", + titulo, + "i3GEOF.uploadkml", + false, + "hd", + cabecalho, + minimiza + ); + divid = janela[2].id; + $i("i3GEOF.uploadkml_corpo").style.backgroundColor = "white"; + i3GEOF.uploadkml.aguarde = $i("i3GEOF.uploadkml_imagemCabecalho").style; + i3GEOF.uploadkml.inicia(divid); + }, + /* + Function: submete + + Submete o arquivo ao servidor. + */ + submete: function(){ + if(i3GEOF.uploadkml.aguarde.visibility==="visible") + {return;} + i3GEOF.uploadkml.aguarde.visibility="visible"; + $i("i3GEOuploadkmlf").submit(); + } +}; + diff --git a/ferramentas/uploadkml/upload.php b/ferramentas/uploadkml/upload.php new file mode 100644 index 0000000..709f440 --- /dev/null +++ b/ferramentas/uploadkml/upload.php @@ -0,0 +1,114 @@ + + + + + + + +

+Carregando o arquivo...

"; + $dirmap = dirname($map_file); + //verifica nomes + verificaNome($_FILES['i3GEOuploadkml']['name']); + + //sobe arquivo + $Arquivo = $_FILES['i3GEOuploadkml']['tmp_name']; + $status = move_uploaded_file($Arquivo,$dirmap."/".$_FILES['i3GEOuploadkml']['name']); + + if($status != 1) + {echo "

Ocorreu um erro no envio do arquivo kml";paraAguarde();exit;} + if($status == 1) + { + echo "

Arquivo enviado. Adicionando tema...

"; + + $tipos = array("waypoints","routes","tracks","route_points","track_points"); + foreach($tipos as $tipo){ + $novolayer = ms_newLayerObj($mapa); + $novolayer->set("connection",$dirmap."/".$_FILES['i3GEOuploadkml']['name']); + if(ms_GetVersionInt() > 50201) + {$novolayer->setconnectiontype(MS_OGR);} + else + {$novolayer->set("connectiontype",MS_OGR);} + $nome = str_replace(".","",$_FILES['i3GEOuploadkml']['name']); + $novolayer->set("name",$nome.$tipo); + $novolayer->setmetadata("TEMA",$_FILES['i3GEOuploadkml']['name']." ".$tipo); + $novolayer->setmetadata("DOWNLOAD","SIM"); + $novolayer->setmetadata("CLASSE","SIM"); + $novolayer->setmetadata("TEXTO","NAO"); + if($tipo == "waypoints" || $tipo == "route_points" ||$tipo == "track_points") + {$novolayer->set("type",MS_LAYER_POINT);} + else + {$novolayer->set("type",MS_LAYER_LINE);} + $novolayer->set("data",$tipo); + $novolayer->setmetadata("TEMALOCAL","SIM"); + $novolayer->setfilter(""); + $classe = ms_newClassObj($novolayer); + $classe->set("name",""); + $estilo = ms_newStyleObj($classe); + if($tipo == "waypoints" || $tipo == "route_points" ||$tipo == "track_points") + { + $estilo->set("symbolname","ponto"); + $estilo->set("size",6); + } + $estilo->color->setrgb(200,50,0); + $estilo->outlinecolor->setrgb(0,0,0); + // le os itens + $novolayer->set("status",MS_DEFAULT); + $novolayer->set("template","none.htm"); + if(isset($uploadkmlEPSG) && $uploadkmlEPSG != "") + {$novolayer->setProjection("init=epsg:".$uploadkmlEPSG);} + //$adiciona = ms_newLayerObj($mapa, $novolayer); + } + $salvo = $mapa->save($map_file); + //grava os templates de cada tema + echo "

Camadas criadas!!! Redesenhando o mapa."; + echo ""; + } + else + { + echo "

Erro ao enviar o arquivo.

"; + paraAguarde(); + exit; + } +} +else +{ + echo "

Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.

"; +} +paraAguarde(); +function paraAguarde(){ + echo ""; +} +function verificaNome($nome) +{ + $nome = strtolower($nome); + $lista = explode(".",$nome); + $extensao = $lista[count($lista) - 1]; + if($extensao != "kml") + { + echo "Nome de arquivo inválido."; + paraAguarde(); + exit; + } +} +?> + + \ No newline at end of file diff --git a/imagens/gisicons/eudock/search.png b/imagens/gisicons/eudock/search.png index 61336e1..4c3c391 100644 Binary files a/imagens/gisicons/eudock/search.png and b/imagens/gisicons/eudock/search.png differ diff --git a/interface/openlayers.htm b/interface/openlayers.htm index 9e525f4..ee63d0f 100644 --- a/interface/openlayers.htm +++ b/interface/openlayers.htm @@ -101,7 +101,7 @@
- +