Commit 4309250a3937d762271002faa7b2dd3d596cd53b

Authored by Edmar Moretti
1 parent 07e4b064

Inclusão da função gráfico de perfil em outras ferramentas

classesjs/classe_util.js
... ... @@ -1506,7 +1506,7 @@ i3GEO.util = {
1506 1506 nome = retorno[i].tema;
1507 1507 tema = retorno[i].name;
1508 1508 }
1509   - if(retorno[i].escondido.toLowerCase() !== "sim")
  1509 + if(retorno[i].escondido !== "sim")
1510 1510 {comboTemas += "<option value="+tema+" >"+nome+"</option>";}
1511 1511 }
1512 1512 comboTemas += "</select>";
... ...
classesphp/classe_atributos.php
... ... @@ -276,6 +276,7 @@ Pega todos os valores dos itens de uma tabela de um tema.
276 276 O range de busca pode ser limitado.
277 277  
278 278 parameters:
  279 +
279 280 $itemtema - Tema que será processado.
280 281  
281 282 $tipo - Tipo de abrangência espacial (brasil ou mapa).
... ...
classesphp/classe_shp.php
... ... @@ -302,10 +302,13 @@ Include:
302 302 /*
303 303 function: listaPontosShape
304 304  
305   -Lista as coordenadas dos pontos de um shapefile
  305 +Lista as coordenadas dos pontos de um layer
  306 +
  307 +Funciona apenas com elementos do tipo ponto
306 308  
307 309 return:
308   -string - xy
  310 +
  311 +array - xy
309 312 */
310 313 function listaPontosShape()
311 314 {
... ... @@ -333,6 +336,46 @@ string - xy
333 336 return $xy;
334 337 }
335 338 /*
  339 +function: listaPontosShapeSel
  340 +
  341 +Lista as coordenadas dos elementos selecionados de um layer
  342 +
  343 +Funciona com elementos pontuais ou lineares
  344 +
  345 +return:
  346 +
  347 +array - xy
  348 +*/
  349 + function listaPontosShapeSel()
  350 + {
  351 + //error_reporting(E_ALL);
  352 + if(!$this->layer){return "erro";}
  353 + $this->layer->set("template","none.htm");
  354 + $this->layer->setfilter("");
  355 + $existesel = carregaquery($this->arquivo,&$this->layer,&$this->mapa);
  356 + $sopen = $this->layer->open();
  357 + if($sopen == MS_FAILURE){return "erro";}
  358 + $res_count = $this->layer->getNumresults();
  359 + $xy = array();
  360 + for ($i = 0; $i < $res_count; ++$i)
  361 + {
  362 + $result = $this->layer->getResult($i);
  363 + $shp_index = $result->shapeindex;
  364 + $shape = $this->layer->getfeature($shp_index,-1);
  365 + $nlinhas = $shape->numlines;
  366 + for($j = 0;$j < $nlinhas; ++$j){
  367 + $lin = $shape->line($j);
  368 + $npontos = $lin->numpoints;
  369 + for($k = 0;$k < $npontos; ++$k){
  370 + $pt = $lin->point($k);
  371 + $xy[] = array("x"=>$pt->x,"y"=>$pt->y);
  372 + }
  373 + }
  374 + }
  375 + $fechou = $this->layer->close();
  376 + return $xy;
  377 + }
  378 +/*
336 379 function: ultimoXY
337 380  
338 381 Obtém as coordenadas xy do último ponto existente no layer. O último ponto é considerado entre aqueles que estão visíveis no mapa atual
... ...
classesphp/mapa_controle.php
... ... @@ -1634,6 +1634,18 @@ Lista os pontos dos elementos de um arquivo shp.
1634 1634 $retorno = $m->listaPontosShape();
1635 1635 break;
1636 1636 /*
  1637 +Valor: LISTAPONTOSSHAPESEL
  1638 +
  1639 +Lista os pontos dos elementos selecionados de um layer
  1640 +
  1641 +<SHP->listaPontosShapeSel>
  1642 +*/
  1643 + case "LISTAPONTOSSHAPESEL":
  1644 + include_once("classe_shp.php");
  1645 + $m = new SHP($map_file,$tema);
  1646 + $retorno = $m->listaPontosShapeSel();
  1647 + break;
  1648 +/*
1637 1649 Valor: CRIASHPVAZIO
1638 1650  
1639 1651 Cria um shapefile vazio e acrescenta como tema ao mapa.
... ...
ferramentas/inserexy2/index.js.php
... ... @@ -18,7 +18,7 @@ Licenca:
18 18  
19 19 GPL2
20 20  
21   -I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  21 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
22 22  
23 23 Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
24 24 Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
... ... @@ -101,6 +101,11 @@ i3GEOF.inserexy = {
101 101 {onclick:{fn: i3GEOF.inserexy.criatemaeditavel}}
102 102 );
103 103 new YAHOO.widget.Button(
  104 + "i3GEOinserexybotaoperfil",
  105 + {onclick:{fn: i3GEOF.inserexy.graficoPerfil}}
  106 + );
  107 +
  108 + new YAHOO.widget.Button(
104 109 "i3GEOinserexybotao2",
105 110 {onclick:{fn: i3GEOF.inserexy.inserir}}
106 111 );
... ... @@ -163,6 +168,7 @@ i3GEOF.inserexy = {
163 168 ' <div id=i3GEOinserexyshapefile style="left:0px;text-align:left;">' +
164 169 ' </div><br>' +
165 170 ' <p class=paragrafo ><input id=i3GEOinserexybotaocriatema type="button" size=18 value="Criar um tema editável" />' +
  171 + ' <input id=i3GEOinserexybotaoperfil type="button" size=18 value="Gráfico de perfil" /></p>' +
166 172  
167 173 ' <div id=i3GEOinserexyopcitens style=display:none;left:0px;text-align:left; >' +
168 174 ' <p class=paragrafo >Se vc quiser, escolha um item existente no tema e o valor que ser&aacute; inclu&iacute;do quando o ponto for adicionado. Vc pode mudar o valor quando desejar:</p>' +
... ... @@ -326,8 +332,11 @@ i3GEOF.inserexy = {
326 332 };
327 333 }
328 334 if(i3GEO.temaAtivo !== ""){
329   - $i("i3GEOinserexytemasLocais").value = i3GEO.temaAtivo;
330   - $i("i3GEOinserexytemasLocais").onchange.call();
  335 + var temp = $i("i3GEOinserexytemasLocais");
  336 + if(temp){
  337 + temp.value = i3GEO.temaAtivo;
  338 + temp.onchange.call();
  339 + }
331 340 }
332 341 },
333 342 "i3GEOinserexyshapefile",
... ... @@ -678,6 +687,36 @@ i3GEOF.inserexy = {
678 687 cp.call(i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=mostrawkt&xy="+xy,"xy2wkt",mostra);
679 688 }
680 689 catch(e){alert("Erro: "+e);i3GEOF.inserexy.aguarde.visibility = "hidden";}
  690 + },
  691 + /*
  692 + Function: graficoPerfil
  693 +
  694 + Cria um gráfico de perfil com base nos dados inseridos
  695 + */
  696 + graficoPerfil: function(){
  697 + try{
  698 + var divs = $i("i3GEOinserexyguia6obj").getElementsByTagName("div"),
  699 + js = i3GEO.configura.locaplic+"/ferramentas/perfil/index.js.php",
  700 + n = divs.length,
  701 + x = [],
  702 + y = [],
  703 + xy,
  704 + i;
  705 + for (i=0;i<n;i++){
  706 + xy = divs[i].innerHTML.split(" ");
  707 + x.push(xy[0]);
  708 + y.push(xy[1]);
  709 + }
  710 + if(x.length == 0)
  711 + {alert("Nenhum ponto encontrado");return;}
  712 + pontosdistobj = {
  713 + xpt: x,
  714 + ypt: y
  715 + };
  716 + i3GEO.util.scriptTag(js,"i3GEOF.perfil.criaJanelaFlutuante(pontosdistobj)","i3GEOF.perfil_script");
  717 +
  718 + }
  719 + catch(e){alert("Erro: "+e);}
681 720 }
682 721 };
683 722 <?php error_reporting(0);if(extension_loaded('zlib')){ob_end_flush();}?>
... ...
ferramentas/selecao/index.js.php
... ... @@ -132,6 +132,8 @@ i3GEOF.selecao = {
132 132 if(i3GEO.Interface.ATUAL != "googlemaps" && i3GEO.Interface.ATUAL != "googleearth")
133 133 {ins += ' <img id=i3GEOselecaobox onclick="i3GEOF.selecao.tiposel(this)" src="'+i3GEO.configura.locaplic+'/imagens/gisicons/region.png" title="Desenhe um retangulo no mapa para selecionar" style="cursor:pointer;border:1px solid RGB(230,230,230);" />';}
134 134 ins += ' <img onclick="i3GEOF.selecao.grafico()" src="'+i3GEO.configura.locaplic+'/imagens/gisicons/layer-vector-chart-add.png" title="Grafico" style="cursor:pointer;border:1px solid RGB(230,230,230);" />' +
  135 + ' <img onclick="i3GEOF.selecao.graficoPerfil()" src="'+i3GEO.configura.locaplic+'/imagens/gisicons/grafico-perfil.png" title="Perfil" style="cursor:pointer;border:1px solid RGB(230,230,230);" />' +
  136 +
135 137 ' <img onclick="i3GEOF.selecao.operacao(\'inverte\')" src="'+i3GEO.configura.locaplic+'/imagens/gisicons/undo.png" title="Inverte a selecao" style="cursor:pointer;border:1px solid RGB(230,230,230);" />' +
136 138 ' <img onclick="i3GEOF.selecao.operacao(\'limpa\')" src="'+i3GEO.configura.locaplic+'/imagens/gisicons/erase.png" title="Limpa a selecao" style="cursor:pointer;border:1px solid RGB(230,230,230);" />' +
137 139 ' <img onclick="i3GEOF.selecao.criatema()" src="'+i3GEO.configura.locaplic+'/imagens/gisicons/save1.png" title="Salva a selecao como um novo tema" style="cursor:pointer;border:1px solid RGB(230,230,230);" />' +
... ... @@ -904,8 +906,11 @@ i3GEOF.selecao = {
904 906 aplicaselecaoTema: function(){
905 907 if(i3GEOF.selecao.aguarde.visibility === "visible")
906 908 {return;}
907   - if($i("i3GEOselecaotemasLigados").value === "")
908   - {alert("Escolha um tema");return;}
  909 + if($i("i3GEOselecaotemasLigados").value === ""){
  910 + alert("Escolha um tema");
  911 + i3GEOF.selecao.aguarde.visibility = "hidden";
  912 + return;
  913 + }
909 914 try{
910 915 i3GEOF.selecao.aguarde.visibility = "visible";
911 916 var temp = function(retorno){
... ... @@ -929,6 +934,50 @@ i3GEOF.selecao = {
929 934 */
930 935 grafico: function(){
931 936 i3GEO.analise.dialogo.graficoInterativo();
  937 + },
  938 + /*
  939 + Function: graficoPerfil
  940 +
  941 + Abre uma janela flutuante para criar gráficos de perfil
  942 + */
  943 + graficoPerfil: function(){
  944 + var cp,p,temp;
  945 + if(i3GEOF.selecao.aguarde.visibility === "visible")
  946 + {return;}
  947 + if($i("i3GEOselecaotemasLigados").value === "")
  948 + {alert("Escolha um tema");return;}
  949 + try{
  950 + i3GEOF.selecao.aguarde.visibility = "visible";
  951 + var temp = function(retorno){
  952 + i3GEOF.selecao.aguarde.visibility = "hidden";
  953 + if (retorno.data != undefined){
  954 + var x = [],
  955 + y = [],
  956 + i,
  957 + n = retorno.data.length,
  958 + js = i3GEO.configura.locaplic+"/ferramentas/perfil/index.js.php";
  959 + for (i=0;i<n; i++){
  960 + x.push(retorno.data[i].x);
  961 + y.push(retorno.data[i].y);
  962 + }
  963 + if(x.length == 0)
  964 + {alert("Nenhum ponto encontrado");return;}
  965 + pontosdistobj = {
  966 + xpt: x,
  967 + ypt: y
  968 + };
  969 + i3GEO.util.scriptTag(js,"i3GEOF.perfil.criaJanelaFlutuante(pontosdistobj)","i3GEOF.perfil_script");
  970 + }
  971 + };
  972 + cp = new cpaint();
  973 + cp.set_response_type("JSON");
  974 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=listaPontosShapeSel&tema="+i3GEO.temaAtivo;
  975 + cp.call(p,"listaPontosShape",temp);
  976 + }
  977 + catch(e){
  978 + alert("Erro: "+e);
  979 + i3GEOF.selecao.aguarde.visibility = "hidden";
  980 + }
932 981 }
933 982  
934 983 };
... ...
imagens/gisicons/grafico-perfil.png 0 → 100644

557 Bytes