From 85ccb84c30b39e621c2612d80a411c435e1ec6e5 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 20 May 2011 00:22:18 +0000 Subject: [PATCH] --- classesjs/classe_barradebotoes.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ classesjs/classe_configura.js | 3 ++- classesjs/classe_gadgets.js | 3 +++ classesjs/classe_interface.js | 4 ++-- classesjs/classe_util.js | 2 +- classesjs/compactajs.php | 3 ++- classesjs/dicionario.js | 7 +++++++ classesjs/i3geonaocompacto.js | 3 ++- classesphp/mapa_openlayers.php | 36 ++++++++++++++++++++++++++++++++---- interface/openlayers.htm | 14 +++++++++++++- mashups/openlayers.js.php | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------- mashups/openlayers.php | 2 ++ 12 files changed, 219 insertions(+), 82 deletions(-) diff --git a/classesjs/classe_barradebotoes.js b/classesjs/classe_barradebotoes.js index 47d6b18..de29d7e 100644 --- a/classesjs/classe_barradebotoes.js +++ b/classesjs/classe_barradebotoes.js @@ -992,6 +992,76 @@ i3GEO.barraDeBotoes = { try {clearTimeout(timeAjudaBotoes);} catch(e){} + }, + editor:{ + inicia: function(){ + //var idjanela = i3GEO.barraDeBotoes.editor.criaJanela(); + i3GEO.barraDeBotoes.editor.carregaJs(); + }, + carregaJs: function(idjanela){ + i3GEO.util.scriptTag( + i3GEO.configura.locaplic+"/mashups/openlayers.js.php", + "i3GEO.barraDeBotoes.editor.ativaPainel('"+idjanela+"')", + "openlayers.js.php", + true + ); + }, + criaJanela: function(){ + if($i("i3GEOjanelaEditor")) + {return "i3GEOjanelaEditor";} + var janela,divid,temp,titulo,cabecalho,minimiza; + cabecalho = function(){}; + minimiza = function(){ + i3GEO.janela.minimiza("i3GEOjanelaEditor"); + }; + //cria a janela flutuante + titulo = "Editor vetorial"; + janela = i3GEO.janela.cria( + "300px", + "200px", + "", + "", + "", + titulo, + "i3GEOjanelaEditor", + false, + "hd", + cabecalho, + minimiza + ); + divid = janela[2].id; + $i("i3GEOjanelaEditor_corpo").style.backgroundColor = "white"; + $i("i3GEOjanelaEditor_corpo").style.textAlign = "left"; + return divid; + }, + ativaPainel: function(idjanela){ + OpenLayers.ImgPath = i3GEO.configura.locaplic+"/pacotes/openlayers/img/"; + i3GEOOL.fundo = "";//i3GEOOL é criado pelo script carregado + i3GEOOL.mapa = i3geoOL; + i3GEOOL.maxext = ""; + i3GEOOL.controles = []; + i3GEOOL.botoes = { + 'pan':false, + 'zoombox':false, + 'zoomtot':false, + 'legenda':false, + 'distancia':false, + 'area':false, + 'identifica':true, + 'linha':true, + 'ponto':true, + 'poligono':true, + 'edita':true, + 'apaga':true, + 'procura':false, + 'salva':true + } + i3GEOOL.layergrafico = new OpenLayers.Layer.Vector("Edição",{displayInLayerSwitcher:false,visibility:true}); + i3GEOOL.mapa.addLayers([i3GEOOL.layergrafico]); + i3GEOOL.criaBotoes(i3GEOOL.botoes); + i3GEOOL.criaJanelaAtivaTema(); + //i3GEOOL.inicia(); + } } }; //YAHOO.log("carregou classe barradebotoes", "Classes i3geo"); \ No newline at end of file diff --git a/classesjs/classe_configura.js b/classesjs/classe_configura.js index b4f2d3b..2a59b65 100644 --- a/classesjs/classe_configura.js +++ b/classesjs/classe_configura.js @@ -152,7 +152,8 @@ i3GEO.configura = { ], "janelas": [ { id:"omenudataJanelas1",text: $trad("u15"), url: "javascript:i3GEO.barraDeBotoes.reativa(0);i3GEO.barraDeBotoes.reativa(1)" }, - { id:"omenudataJanelas2",text: $trad("u16"), url: "javascript:i3GEO.ajuda.abreJanela()" } + { id:"omenudataJanelas2",text: $trad("u16"), url: "javascript:i3GEO.ajuda.abreJanela()" }, + { id:"omenudataJanelas3",text: $trad("u29"), url: "javascript:i3GEO.barraDeBotoes.editor.inicia()" } ], "arquivos": [ { id:"omenudataArquivos1",text: $trad("u17"), url: "javascript:i3GEO.mapa.dialogo.salvaMapa()" }, diff --git a/classesjs/classe_gadgets.js b/classesjs/classe_gadgets.js index 2875911..984e4c3 100644 --- a/classesjs/classe_gadgets.js +++ b/classesjs/classe_gadgets.js @@ -867,6 +867,9 @@ i3GEO.gadgets = { if(i3GEO.Interface.ATUAL === "googleearth" && $i("omenudataJanelas1")){ MM.getMenuItem("omenudataJanelas1").cfg.setProperty("disabled", true); } + if(i3GEO.Interface.ATUAL !== "openlayers" && $i("omenudataJanelas3")){ + MM.getMenuItem("omenudataJanelas3").cfg.setProperty("disabled", true); + } // //corrige problemas de estilo // diff --git a/classesjs/classe_interface.js b/classesjs/classe_interface.js index a6f18ff..8227103 100644 --- a/classesjs/classe_interface.js +++ b/classesjs/classe_interface.js @@ -922,7 +922,7 @@ i3GEO.Interface = { temp = camada.transitioneffect === "nao" ? opcoes.transitionEffect = "null" : opcoes.transitionEffect = "resize"; if(camada.connectiontype === 7 && camada.wmsurl !== ""){ urllayer = camada.wmsurl+"&r="+Math.random(); - layer = new OpenLayers.Layer.WMS(camada.name, urllayer,{format:camada.wmsformat,transparent:true},opcoes); + layer = new OpenLayers.Layer.WMS(camada.name, urllayer,{LAYERS:camada.name,format:camada.wmsformat,transparent:true},opcoes); if(camada.wmssrs != "") {layer.url = layer.url+"&SRS="+camada.wmssrs+"&CRS="+camada.wmssrs;} } @@ -932,7 +932,7 @@ i3GEO.Interface = { else{ temp = camada.type === 3 ? opcoes.singleTile = false : opcoes.singleTile = !(i3GEO.Interface.openlayers.TILES); } - layer = new OpenLayers.Layer.WMS(camada.name, urllayer,{map_imagetype:i3GEO.Interface.OUTPUTFORMAT},opcoes); + layer = new OpenLayers.Layer.WMS(camada.name, urllayer,{LAYERS:camada.name,map_imagetype:i3GEO.Interface.OUTPUTFORMAT},opcoes); } } catch(e){} diff --git a/classesjs/classe_util.js b/classesjs/classe_util.js index e05a47e..76db6fd 100644 --- a/classesjs/classe_util.js +++ b/classesjs/classe_util.js @@ -1287,7 +1287,7 @@ i3GEO.util = { js {String} - endereco do JS - ini - funcao do JS que será executada ao ser carregado o script (pode ser "") + ini {String} - funcao que será executada ao ser carregado o script (pode ser "") id - id do elemento script que será criado diff --git a/classesjs/compactajs.php b/classesjs/compactajs.php index 197e253..a77ae6d 100644 --- a/classesjs/compactajs.php +++ b/classesjs/compactajs.php @@ -170,7 +170,8 @@ $cssfiles = array( "../pacotes/yui270/build/carousel/assets/skins/sam/carousel.css", "../pacotes/yui270/build/slider/assets/skins/sam/slider.css", "../pacotes/yui270/build/resize/assets/skins/sam/resize.css", -"../css/corrigeyui_geral.css" +"../css/corrigeyui_geral.css", +"../mashups/openlayers.css" ); $buffer = ""; diff --git a/classesjs/dicionario.js b/classesjs/dicionario.js index d6445a7..80680b9 100644 --- a/classesjs/dicionario.js +++ b/classesjs/dicionario.js @@ -409,6 +409,13 @@ en:"Centro médio", es:"Centro médio", it:"Centro médio" }], +"u29": [ +{ +pt: "Editor vetorial", +en:"Editor vetorial", +es:"Editor vetorial", +it:"Editor vetorial" +}], //arvore com a lista de temas "t1": [ { diff --git a/classesjs/i3geonaocompacto.js b/classesjs/i3geonaocompacto.js index 59ecfb3..e9a6cc1 100644 --- a/classesjs/i3geonaocompacto.js +++ b/classesjs/i3geonaocompacto.js @@ -87,7 +87,8 @@ "../pacotes/yui270/build/button/assets/skins/sam/button.css", "../pacotes/yui270/build/slider/assets/skins/sam/slider.css", "../pacotes/yui270/build/resize/assets/skins/sam/resize.css", - "../css/corrigeyui_geral.css" + "../css/corrigeyui_geral.css", + "../mashups/openlayers.css" ); for (i = 0; i < cssfiles.length; i++) { diff --git a/classesphp/mapa_openlayers.php b/classesphp/mapa_openlayers.php index 6ceaa7b..8ff4162 100644 --- a/classesphp/mapa_openlayers.php +++ b/classesphp/mapa_openlayers.php @@ -107,7 +107,7 @@ if($qy) foreach ($shp as $indx) {$mapa->querybyindex($indxlayer,-1,$indx,MS_TRUE);} } -if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao´e alterado +if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao e alterado $numlayers = $mapa->numlayers; $cache = false; for($i = 0;$i < $numlayers;$i++) @@ -150,6 +150,12 @@ if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao´e alter } } $l->set("template","none.htm"); + if($_GET["REQUEST"] == "GetFeatureInfo" || $_GET["request"] == "getfeature"){ + $l->setmetadata("gml_include_items","all"); + $l->setmetadata("WMS_INCLUDE_ITEMS","all"); + $l->setmetadata("WFS_INCLUDE_ITEMS","all"); + $l->set("dump",MS_TRUE); + } } } if($qy || $_GET["HEIGHT"] != 256 ) @@ -168,10 +174,32 @@ if($cache == true) $map_size = explode(" ",$_GET["map_size"]); $mapa->setsize($map_size[0],$map_size[1]); +if(isset($_GET["mapext"])){ + $mapext = explode(" ",$_GET["mapext"]); + $mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); +} +// +//qd a cahamda e para um WMS, redireciona para ogc.php +// +if($_GET["REQUEST"] == "GetFeatureInfo" || $_GET["request"] == "getfeature"){ + $req = ms_newowsrequestobj(); + $_GET = array_merge($_GET,$_POST); + foreach ($_GET as $k=>$v){ + $req->setParameter($k, $v); + } + $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; + $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; + $or = $proto.$server.$_SERVER['PHP_SELF']; + $mapa->setmetadata("wfs_onlineresource",$or."?".$_SERVER["QUERY_STRING"]); -$mapext = explode(" ",$_GET["mapext"]); -$mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); - + ms_ioinstallstdouttobuffer(); + $mapa->owsdispatch($req); + $contenttype = ms_iostripstdoutbuffercontenttype(); + header("Content-type: $contenttype"); + ms_iogetStdoutBufferBytes(); + ms_ioresethandlers(); + exit; +} $o = $mapa->outputformat; $o->set("imagemode",MS_IMAGEMODE_RGBA); $legenda = $mapa->legend; diff --git a/interface/openlayers.htm b/interface/openlayers.htm index 97866ac..e6177c3 100644 --- a/interface/openlayers.htm +++ b/interface/openlayers.htm @@ -145,8 +145,20 @@ - + + +