Commit 4309250a3937d762271002faa7b2dd3d596cd53b
1 parent
07e4b064
Exists in
master
and in
7 other branches
Inclusão da função gráfico de perfil em outras ferramentas
Showing
7 changed files
with
152 additions
and
8 deletions
Show diff stats
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
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á incluí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 | }; | ... | ... |
557 Bytes