Commit b7292fed97e58aa1b6ae682fd37bd5b47afe49bb
1 parent
5b3e27d1
Exists in
master
and in
7 other branches
Ferramenta Gráfico de perfil
Showing
8 changed files
with
324 additions
and
18 deletions
Show diff stats
classesjs/classe_analise.js
@@ -58,8 +58,7 @@ i3GEO.analise = { | @@ -58,8 +58,7 @@ i3GEO.analise = { | ||
58 | Abre a janela de diálogo da ferramenta graficointerativo | 58 | Abre a janela de diálogo da ferramenta graficointerativo |
59 | */ | 59 | */ |
60 | graficoInterativo: function(){ | 60 | graficoInterativo: function(){ |
61 | - if(typeof(i3GEOF.graficointerativo) === 'undefined') | ||
62 | - {i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo()","graficointerativo","graficointerativo");} | 61 | + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo()","graficointerativo","graficointerativo"); |
63 | }, | 62 | }, |
64 | /* | 63 | /* |
65 | Function: linhaDoTempo | 64 | Function: linhaDoTempo |
@@ -91,6 +90,14 @@ i3GEO.analise = { | @@ -91,6 +90,14 @@ i3GEO.analise = { | ||
91 | {i3GEO.eventos.NAVEGAMAPA.push("atualizaLinhaDoTempo()");} | 90 | {i3GEO.eventos.NAVEGAMAPA.push("atualizaLinhaDoTempo()");} |
92 | }, | 91 | }, |
93 | /* | 92 | /* |
93 | + Function: perfil | ||
94 | + | ||
95 | + Abre a janela de diálogo da ferramenta perfil | ||
96 | + */ | ||
97 | + perfil: function(){ | ||
98 | + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.perfil()","perfil","perfil"); | ||
99 | + }, | ||
100 | + /* | ||
94 | Function: gradePontos | 101 | Function: gradePontos |
95 | 102 | ||
96 | Abre a janela de diálogo da ferramenta gradepontos | 103 | Abre a janela de diálogo da ferramenta gradepontos |
@@ -269,6 +276,7 @@ i3GEO.analise = { | @@ -269,6 +276,7 @@ i3GEO.analise = { | ||
269 | '<td>' + | 276 | '<td>' + |
270 | '<input style="cursor:pointer" type="checkbox" id="parartextos" checked />' + | 277 | '<input style="cursor:pointer" type="checkbox" id="parartextos" checked />' + |
271 | '</td><td>Textos<td>' + | 278 | '</td><td>Textos<td>' + |
279 | + '<td> <input id=i3GEObotaoPerfil size="22" type="button" value="perfil"></td>' + | ||
272 | '</tr></table></span>' + | 280 | '</tr></table></span>' + |
273 | '</div>' + | 281 | '</div>' + |
274 | '</div>'; | 282 | '</div>'; |
@@ -285,6 +293,17 @@ i3GEO.analise = { | @@ -285,6 +293,17 @@ i3GEO.analise = { | ||
285 | imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); | 293 | imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); |
286 | YAHOO.janelaDocamede.xp.panel.moveTo(imagemxy[0]+150,imagemxy[1]); | 294 | YAHOO.janelaDocamede.xp.panel.moveTo(imagemxy[0]+150,imagemxy[1]); |
287 | YAHOO.util.Event.addListener(YAHOO.janelaDocamede.xp.panel.close, "click", i3GEO.analise.medeDistancia.fechaJanela); | 295 | YAHOO.util.Event.addListener(YAHOO.janelaDocamede.xp.panel.close, "click", i3GEO.analise.medeDistancia.fechaJanela); |
296 | + // | ||
297 | + //botao que abre a ferramenta de cálculo de perfis. | ||
298 | + //pontosdistobj contém as coordenadas dos pontos | ||
299 | + // | ||
300 | + new YAHOO.widget.Button( | ||
301 | + "i3GEObotaoPerfil", | ||
302 | + {onclick:{fn: function(){ | ||
303 | + var js = i3GEO.configura.locaplic+"/ferramentas/perfil/index.js.php"; | ||
304 | + i3GEO.util.scriptTag(js,"i3GEOF.perfil.criaJanelaFlutuante(pontosdistobj)","i3GEOF.perfil_script"); | ||
305 | + }}} | ||
306 | + ); | ||
288 | }, | 307 | }, |
289 | /* | 308 | /* |
290 | Function: fechaJanela | 309 | Function: fechaJanela |
@@ -295,6 +314,8 @@ i3GEO.analise = { | @@ -295,6 +314,8 @@ i3GEO.analise = { | ||
295 | i3GEO.Interface.ATUAL !== "googleearth" ? i3GEO.desenho.richdraw.fecha() : i3GEO.Interface.googleearth.removePlacemark("divGeometriasTemp"); | 314 | i3GEO.Interface.ATUAL !== "googleearth" ? i3GEO.desenho.richdraw.fecha() : i3GEO.Interface.googleearth.removePlacemark("divGeometriasTemp"); |
296 | i3GEO.util.removeChild("pontosins"); | 315 | i3GEO.util.removeChild("pontosins"); |
297 | i3GEO.util.removeChild("mostradistancia_c"); | 316 | i3GEO.util.removeChild("mostradistancia_c"); |
317 | + if($i("divGeometriasTemp")) | ||
318 | + {i3GEO.desenho.richdraw.fecha();} | ||
298 | YAHOO.util.Event.removeListener(YAHOO.janelaDocamede.xp.panel.close, "click"); | 319 | YAHOO.util.Event.removeListener(YAHOO.janelaDocamede.xp.panel.close, "click"); |
299 | i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.clique()"); | 320 | i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.clique()"); |
300 | i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento()"); | 321 | i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento()"); |
classesjs/classe_janela.js
@@ -313,11 +313,15 @@ i3GEO.janela = { | @@ -313,11 +313,15 @@ i3GEO.janela = { | ||
313 | if(ifr == true) | 313 | if(ifr == true) |
314 | {YAHOO.janelaDoca.xp.panel.iframe.style.zIndex = 0;} | 314 | {YAHOO.janelaDoca.xp.panel.iframe.style.zIndex = 0;} |
315 | if(modal === true){ | 315 | if(modal === true){ |
316 | - if($i(id+"_mask")) | ||
317 | - {$i(id+"_mask").style.zIndex = 9000 + i3GEO.janela.ULTIMOZINDEX + 1;} | 316 | + if($i(id+"_mask")){ |
317 | + $i(id+"_mask").style.zIndex = 9000 + i3GEO.janela.ULTIMOZINDEX + 1; | ||
318 | + i3GEO.janela.ULTIMOZINDEX = 9000 + i3GEO.janela.ULTIMOZINDEX + 1; | ||
319 | + } | ||
320 | + } | ||
321 | + if($i(id+"_c")){ | ||
322 | + $i(id+"_c").style.zIndex = 23000 + i3GEO.janela.ULTIMOZINDEX + 1; | ||
323 | + i3GEO.janela.ULTIMOZINDEX = 23000 + i3GEO.janela.ULTIMOZINDEX + 1; | ||
318 | } | 324 | } |
319 | - if($i(id+"_c")) | ||
320 | - {$i(id+"_c").style.zIndex = 23000 + i3GEO.janela.ULTIMOZINDEX + 1;} | ||
321 | if(funcaoCabecalho) | 325 | if(funcaoCabecalho) |
322 | {$i(id+'_cabecalho').onclick = funcaoCabecalho;} | 326 | {$i(id+'_cabecalho').onclick = funcaoCabecalho;} |
323 | if(funcaoMinimiza) | 327 | if(funcaoMinimiza) |
@@ -381,10 +385,8 @@ i3GEO.janela = { | @@ -381,10 +385,8 @@ i3GEO.janela = { | ||
381 | i3GEO.util.escondePin(); | 385 | i3GEO.util.escondePin(); |
382 | i3GEO.util.escondeBox(); | 386 | i3GEO.util.escondeBox(); |
383 | //fecha o container de desenho de elementos na tela | 387 | //fecha o container de desenho de elementos na tela |
384 | - if($i("divGeometriasTemp")) | ||
385 | - {i3GEO.desenho.richdraw.fecha();} | ||
386 | - //if($i("flamingoi")) | ||
387 | - //{$i("flamingoi").style.display="block";} | 388 | + //if($i("divGeometriasTemp")) |
389 | + //{i3GEO.desenho.richdraw.fecha();} | ||
388 | //executa as funções de fechamento | 390 | //executa as funções de fechamento |
389 | if(i3GEO.janela.ANTESFECHA){ | 391 | if(i3GEO.janela.ANTESFECHA){ |
390 | for(i=0;i<i3GEO.janela.ANTESFECHA.length;i++) | 392 | for(i=0;i<i3GEO.janela.ANTESFECHA.length;i++) |
classesjs/classe_php.js
@@ -1107,5 +1107,18 @@ i3GEO.php = { | @@ -1107,5 +1107,18 @@ i3GEO.php = { | ||
1107 | i3GEO.php.verifica(); | 1107 | i3GEO.php.verifica(); |
1108 | var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=alteradata&tema="+tema+"&novodata="+data; | 1108 | var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=alteradata&tema="+tema+"&novodata="+data; |
1109 | cpJSON.call(p,"alteradata",funcao); | 1109 | cpJSON.call(p,"alteradata",funcao); |
1110 | - } | 1110 | + }, |
1111 | + /* | ||
1112 | + Function: dadosPerfilRelevo | ||
1113 | + | ||
1114 | + <DADOSPERFILRELEVO> | ||
1115 | + */ | ||
1116 | + dadosPerfilRelevo: function(funcao,opcao,pontos,amostragem){ | ||
1117 | + i3GEO.php.verifica(); | ||
1118 | + var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=dadosPerfilRelevo&opcao="+opcao; | ||
1119 | + var cp = new cpaint(); | ||
1120 | + cp.set_transfer_mode('POST'); | ||
1121 | + cp.set_response_type("JSON"); | ||
1122 | + cp.call(p,"foo",funcao,"&pontos="+pontos+"&amostragem="+amostragem); | ||
1123 | + } | ||
1111 | }; | 1124 | }; |
1112 | \ No newline at end of file | 1125 | \ No newline at end of file |
classesjs/dicionario_ajuda.js
@@ -812,6 +812,15 @@ g_traducao_ajuda = { | @@ -812,6 +812,15 @@ g_traducao_ajuda = { | ||
812 | complemento:"", | 812 | complemento:"", |
813 | tela:"", | 813 | tela:"", |
814 | apijs:"i3GEO.arvoreDeTemas" | 814 | apijs:"i3GEO.arvoreDeTemas" |
815 | + }, | ||
816 | + "96": { | ||
817 | + titulo: "Gráfico de perfil", | ||
818 | + diretorio:"", | ||
819 | + categoria:"3", | ||
820 | + pt:"Cria um gráfico de perfil com base em um conjunto de dados contendo os valores de Z.", | ||
821 | + complemento:"Os valores de Z podem ser obtidos de um tema ou de um serviço do tipo Google API", | ||
822 | + tela:"", | ||
823 | + apijs:"i3GEO.analise" | ||
815 | } | 824 | } |
816 | } | 825 | } |
817 | }; | 826 | }; |
classesphp/graficos.php
@@ -520,4 +520,19 @@ function dadosLinhaDoTempo($map_file,$tema,$ext="") | @@ -520,4 +520,19 @@ function dadosLinhaDoTempo($map_file,$tema,$ext="") | ||
520 | "events"=>$eventos | 520 | "events"=>$eventos |
521 | ); | 521 | ); |
522 | } | 522 | } |
523 | +function dadosPerfilRelevo($pontos,$opcao,$amostragem){ | ||
524 | + if($opcao == "google"){ | ||
525 | + $urlGoogle = "http://maps.google.com/maps/api/elevation/json?sensor=false&path="; | ||
526 | + $pontos = str_replace(",","|",$pontos); | ||
527 | + $pontos = str_replace(" ",",",$pontos); | ||
528 | + $urlGoogle .= $pontos."&samples=".$amostragem; | ||
529 | + $curl = curl_init(); | ||
530 | + curl_setopt ($curl, CURLOPT_URL, $urlGoogle); | ||
531 | + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); | ||
532 | + $result = curl_exec($curl); | ||
533 | + curl_close ($curl); | ||
534 | + $result = json_decode( $result, true ); | ||
535 | + } | ||
536 | + return $result; | ||
537 | +} | ||
523 | ?> | 538 | ?> |
524 | \ No newline at end of file | 539 | \ No newline at end of file |
classesphp/mapa_controle.php
@@ -1769,7 +1769,7 @@ Valor: DADOSLINHADOTEMPO | @@ -1769,7 +1769,7 @@ Valor: DADOSLINHADOTEMPO | ||
1769 | 1769 | ||
1770 | Pega os dados de um tema para geração do gráfico de linha do tempo. | 1770 | Pega os dados de um tema para geração do gráfico de linha do tempo. |
1771 | 1771 | ||
1772 | -<graficoPizza> | 1772 | +<dadosLinhaDoTempo> |
1773 | */ | 1773 | */ |
1774 | case "DADOSLINHADOTEMPO": | 1774 | case "DADOSLINHADOTEMPO": |
1775 | include_once("graficos.php"); | 1775 | include_once("graficos.php"); |
@@ -1778,6 +1778,19 @@ Pega os dados de um tema para geração do gráfico de linha do tempo. | @@ -1778,6 +1778,19 @@ Pega os dados de um tema para geração do gráfico de linha do tempo. | ||
1778 | $retorno = dadosLinhaDoTempo($map_file,$tema,$ext); | 1778 | $retorno = dadosLinhaDoTempo($map_file,$tema,$ext); |
1779 | break; | 1779 | break; |
1780 | /* | 1780 | /* |
1781 | +Valor: DADOSPERFILRELEVO | ||
1782 | + | ||
1783 | +Pega os dados para elaboração de gráfico de perfil do relevo | ||
1784 | + | ||
1785 | +<dadosPerfilRelevo> | ||
1786 | +*/ | ||
1787 | + case "DADOSPERFILRELEVO": | ||
1788 | + include_once("graficos.php"); | ||
1789 | + if(!isset($ext)) | ||
1790 | + {$ext = "";} | ||
1791 | + $retorno = dadosPerfilRelevo($pontos,$opcao,$amostragem); | ||
1792 | + break; | ||
1793 | +/* | ||
1781 | Section: Menu de temas | 1794 | Section: Menu de temas |
1782 | 1795 | ||
1783 | Obtém a lista de temas, grupos e sub-grupos. | 1796 | Obtém a lista de temas, grupos e sub-grupos. |
ferramentas/graficointerativo/index.js.php
@@ -55,6 +55,12 @@ i3GEOF.graficointerativo = { | @@ -55,6 +55,12 @@ i3GEOF.graficointerativo = { | ||
55 | */ | 55 | */ |
56 | aguarde: "", | 56 | aguarde: "", |
57 | /* | 57 | /* |
58 | + Propriedade: titulo | ||
59 | + | ||
60 | + Título do gráfico. Se for vazio, será obtido do nome do tema selecionado | ||
61 | + */ | ||
62 | + titulo: "", | ||
63 | + /* | ||
58 | Propriedade: tipo | 64 | Propriedade: tipo |
59 | 65 | ||
60 | Tipo de gráfico escolhido pelo usuário. | 66 | Tipo de gráfico escolhido pelo usuário. |
@@ -117,10 +123,10 @@ i3GEOF.graficointerativo = { | @@ -117,10 +123,10 @@ i3GEOF.graficointerativo = { | ||
117 | 123 | ||
118 | iddiv {String} - id do div que receberá o conteudo HTML da ferramenta | 124 | iddiv {String} - id do div que receberá o conteudo HTML da ferramenta |
119 | 125 | ||
120 | - dados {JSON} - dados para o gráfico (opcional) | 126 | + dados {JSON} - dados para o gráfico (opcional) exemplo ["n;x","'Argentina';33796870","'Paraguay';4773464","'Brazil';151525400","'Chile';13772710"] |
121 | */ | 127 | */ |
122 | inicia: function(iddiv,dados){ | 128 | inicia: function(iddiv,dados){ |
123 | - try{ | 129 | + //try{ |
124 | $i(iddiv).innerHTML += i3GEOF.graficointerativo.html(); | 130 | $i(iddiv).innerHTML += i3GEOF.graficointerativo.html(); |
125 | $i("i3GEOgraficointerativoAcumula").checked = i3GEOF.graficointerativo.acumula; | 131 | $i("i3GEOgraficointerativoAcumula").checked = i3GEOF.graficointerativo.acumula; |
126 | $i("i3GEOgraficointerativoRelativa").checked = i3GEOF.graficointerativo.relativa; | 132 | $i("i3GEOgraficointerativoRelativa").checked = i3GEOF.graficointerativo.relativa; |
@@ -202,8 +208,8 @@ i3GEOF.graficointerativo = { | @@ -202,8 +208,8 @@ i3GEOF.graficointerativo = { | ||
202 | i3GEOF.graficointerativo.montaTabelaDados(dados); | 208 | i3GEOF.graficointerativo.montaTabelaDados(dados); |
203 | $i("i3GEOgraficointerativoguia4").onclick.call(); | 209 | $i("i3GEOgraficointerativoguia4").onclick.call(); |
204 | } | 210 | } |
205 | - } | ||
206 | - catch(erro){alert(erro);} | 211 | + //} |
212 | + //catch(erro){alert(erro);} | ||
207 | }, | 213 | }, |
208 | /* | 214 | /* |
209 | Function: html | 215 | Function: html |
@@ -350,7 +356,7 @@ i3GEOF.graficointerativo = { | @@ -350,7 +356,7 @@ i3GEOF.graficointerativo = { | ||
350 | i3GEO.barraDeBotoes.ativaIcone("graficointerativo"); | 356 | i3GEO.barraDeBotoes.ativaIcone("graficointerativo"); |
351 | var i = $i("i3GEOF.graficointerativo_c").style; | 357 | var i = $i("i3GEOF.graficointerativo_c").style; |
352 | i3GEO.janela.ULTIMOZINDEX++; | 358 | i3GEO.janela.ULTIMOZINDEX++; |
353 | - i.zIndex = 21000 + i3GEO.janela.ULTIMOZINDEX; | 359 | + i.zIndex = i3GEO.janela.ULTIMOZINDEX; |
354 | }, | 360 | }, |
355 | /* | 361 | /* |
356 | Function: ativaTipo | 362 | Function: ativaTipo |
@@ -478,7 +484,7 @@ i3GEOF.graficointerativo = { | @@ -478,7 +484,7 @@ i3GEOF.graficointerativo = { | ||
478 | i, | 484 | i, |
479 | id, | 485 | id, |
480 | cor = "#d01f3c"; | 486 | cor = "#d01f3c"; |
481 | - if(!retorno.dados) | 487 | + if(!retorno.dados && retorno.data != undefined) |
482 | {dados = retorno.data.dados;} | 488 | {dados = retorno.data.dados;} |
483 | else | 489 | else |
484 | {dados = retorno;} | 490 | {dados = retorno;} |
@@ -556,6 +562,8 @@ i3GEOF.graficointerativo = { | @@ -556,6 +562,8 @@ i3GEOF.graficointerativo = { | ||
556 | legendaY = "", | 562 | legendaY = "", |
557 | fill = "#C4B86A", | 563 | fill = "#C4B86A", |
558 | pointSize = 2; | 564 | pointSize = 2; |
565 | + if(i3GEOF.graficointerativo.titulo != "") | ||
566 | + {titulo = i3GEOF.graficointerativo.titulo} | ||
559 | if($i("i3GEOgraficointerativoComboXid")) | 567 | if($i("i3GEOgraficointerativoComboXid")) |
560 | {legendaX = $i("i3GEOgraficointerativoComboXid").value;} | 568 | {legendaX = $i("i3GEOgraficointerativoComboXid").value;} |
561 | if($i("i3GEOgraficointerativoComboYid")) | 569 | if($i("i3GEOgraficointerativoComboYid")) |
@@ -0,0 +1,225 @@ | @@ -0,0 +1,225 @@ | ||
1 | +<?php error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header("Content-type: text/javascript"); ?> | ||
2 | +/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: true */ | ||
3 | + | ||
4 | +/* | ||
5 | +Title: Perfil | ||
6 | + | ||
7 | +Cria um gráfico de perfil do "relevo" | ||
8 | + | ||
9 | +Veja: | ||
10 | + | ||
11 | +<i3GEO.analise.dialogo.perfil> | ||
12 | + | ||
13 | +Arquivo: | ||
14 | + | ||
15 | +i3geo/ferramentas/perfil/index.js.php | ||
16 | + | ||
17 | +Licenca: | ||
18 | + | ||
19 | +GPL2 | ||
20 | + | ||
21 | +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
22 | + | ||
23 | +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
24 | +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br | ||
25 | + | ||
26 | +Este programa é software livre; você pode redistribuí-lo | ||
27 | +e/ou modificá-lo sob os termos da Licença Pública Geral | ||
28 | +GNU conforme publicada pela Free Software Foundation; | ||
29 | + | ||
30 | +Este programa é distribuído na expectativa de que seja útil, | ||
31 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
32 | +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
33 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
34 | +Você deve ter recebido uma cópia da Licença Pública Geral do | ||
35 | +GNU junto com este programa; se não, escreva para a | ||
36 | +Free Software Foundation, Inc., no endereço | ||
37 | +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
38 | +*/ | ||
39 | +if(typeof(i3GEOF) === 'undefined'){ | ||
40 | + i3GEOF = []; | ||
41 | +} | ||
42 | +/* | ||
43 | +Class: i3GEOF.perfil | ||
44 | +*/ | ||
45 | +i3GEOF.perfil = { | ||
46 | + /* | ||
47 | + Variavel: pontos | ||
48 | + | ||
49 | + Objeto com a lista de pontos iniciais enviadas como parâmetro na inicialização da ferramenta | ||
50 | + */ | ||
51 | + pontos: "", | ||
52 | + /* | ||
53 | + Variavel: dadosGrafico | ||
54 | + | ||
55 | + Dados no formato aceito pela ferramenta i3GEOF.graficointerativo | ||
56 | + */ | ||
57 | + dadosGrafico: [], | ||
58 | + /* | ||
59 | + Variavel: aguarde | ||
60 | + | ||
61 | + Objeto DOM com a imagem de aguarde existente no cabeçalho da janela. | ||
62 | + */ | ||
63 | + aguarde: "", | ||
64 | + /* | ||
65 | + Function: inicia | ||
66 | + | ||
67 | + Inicia a ferramenta. É chamado por criaJanelaFlutuante | ||
68 | + | ||
69 | + Parametro: | ||
70 | + | ||
71 | + iddiv {String} - id do div que receberá o conteudo HTML da ferramenta | ||
72 | + */ | ||
73 | + inicia: function(iddiv){ | ||
74 | + try{ | ||
75 | + $i(iddiv).innerHTML += i3GEOF.perfil.html(); | ||
76 | + new YAHOO.widget.Button( | ||
77 | + "i3GEOperfilbotao1", | ||
78 | + {onclick:{fn: i3GEOF.perfil.criaPerfil}} | ||
79 | + ); | ||
80 | + } | ||
81 | + catch(erro){alert(erro);} | ||
82 | + }, | ||
83 | + /* | ||
84 | + Function: html | ||
85 | + | ||
86 | + Gera o código html para apresentação das opções da ferramenta | ||
87 | + | ||
88 | + Retorno: | ||
89 | + | ||
90 | + String com o código html | ||
91 | + */ | ||
92 | + html:function(){ | ||
93 | + var ins = "<p class='paragrafo' >Escolha qual será a fonte dos dados de Z:"; | ||
94 | + ins += "<p class='paragrafo' ><input style=cursor:pointer checked type=radio name=i3GEOFperfilFonte id=i3GEOFperfilFonteGoogle /> Google"; | ||
95 | + ins += "<p class='paragrafo' ><input type=text id=i3GEOFperfilAmostragem value=20 size=3 /> Número de pontos que serão obtidos ao longo da linha"; | ||
96 | + ins += "<br><br><input id=i3GEOperfilbotao1 type='buttom' value='Criar gráfico' />"; | ||
97 | + ins += "<br><br><div style=text-align:left id=i3GEOperfilfim ></div>"; | ||
98 | + return ins; | ||
99 | + }, | ||
100 | + /* | ||
101 | + Function: criaJanelaFlutuante | ||
102 | + | ||
103 | + Cria a janela flutuante para controle da ferramenta. | ||
104 | + | ||
105 | + Parametro: | ||
106 | + | ||
107 | + pontos {objeto} - contém as coordenadas dos pontos que serão usados nos cálculos, como no exemplo | ||
108 | + | ||
109 | + pontos = {xpt: [],ypt:[]}; //xpt são os valores de x (array) e ypt os valores de y (array) | ||
110 | + */ | ||
111 | + criaJanelaFlutuante: function(pontos){ | ||
112 | + var minimiza,cabecalho,janela,divid,temp,titulo,cabecalho,minimiza; | ||
113 | + i3GEOF.perfil.pontos = pontos; | ||
114 | + //cria a janela flutuante | ||
115 | + titulo = "Perfil <a class=ajuda_usuario target=_blank href='" + i3GEO.configura.locaplic + "/ajuda_usuario.php?idcategoria=3&idajuda=96' > </a>"; | ||
116 | + cabecalho = function(){}; | ||
117 | + minimiza = function(){ | ||
118 | + i3GEO.janela.minimiza("i3GEOF.perfil"); | ||
119 | + }; | ||
120 | + janela = i3GEO.janela.cria( | ||
121 | + "400px", | ||
122 | + "200px", | ||
123 | + "", | ||
124 | + "", | ||
125 | + "", | ||
126 | + titulo, | ||
127 | + "i3GEOF.perfil", | ||
128 | + false, | ||
129 | + "hd", | ||
130 | + cabecalho, | ||
131 | + minimiza | ||
132 | + ); | ||
133 | + divid = janela[2].id; | ||
134 | + i3GEOF.perfil.aguarde = $i("i3GEOF.perfil_imagemCabecalho").style; | ||
135 | + i3GEOF.perfil.inicia(divid); | ||
136 | + }, | ||
137 | + /* | ||
138 | + Function: criaPerfil | ||
139 | + | ||
140 | + Executa a operação de geração do perfil | ||
141 | + | ||
142 | + Veja: | ||
143 | + | ||
144 | + <DADOSPERFILRELEVO> | ||
145 | + */ | ||
146 | + criaPerfil: function(){ | ||
147 | + try{ | ||
148 | + if(i3GEOF.perfil.aguarde.visibility === "visible") | ||
149 | + {return;} | ||
150 | + var p, | ||
151 | + cp; | ||
152 | + | ||
153 | + i3GEOF.perfil.aguarde.visibility = "visible"; | ||
154 | + fim = function(retorno){ | ||
155 | + i3GEOF.perfil.aguarde.visibility = "hidden"; | ||
156 | + if (retorno.data === undefined ) | ||
157 | + {$i("i3GEOperfilfim").innerHTML = "Erro.";return;} | ||
158 | + else{ | ||
159 | + if(retorno.data.status != "OK") | ||
160 | + {$i("i3GEOperfilfim").innerHTML = "Erro ao acessar o serviço de fornecimento dos dados";return;} | ||
161 | + i3GEOF.perfil.converteDados(retorno.data.results); | ||
162 | + if(!$i("i3GEOF.graficointerativo_script")){ | ||
163 | + var js = i3GEO.configura.locaplic+"/ferramentas/graficointerativo/index.js.php"; | ||
164 | + i3GEO.util.scriptTag(js,"i3GEOF.perfil.iniciaGrafico()","i3GEOF.graficointerativo_script"); | ||
165 | + } | ||
166 | + } | ||
167 | + }; | ||
168 | + var pontos = i3GEOF.perfil.listaPontos(); | ||
169 | + i3GEO.php.dadosPerfilRelevo(fim,"google",pontos,$i("i3GEOFperfilAmostragem").value); | ||
170 | + } | ||
171 | + catch(e){$i("i3GEOperfilfim").innerHTML = "<p class='paragrafo' >Erro. "+e;i3GEO.janela.fechaAguarde();i3GEOF.perfil.aguarde.visibility = "hidden";} | ||
172 | + }, | ||
173 | + /* | ||
174 | + Function: iniciaGrafico | ||
175 | + | ||
176 | + Inicializa o gráfico de perfil definindo os parâmetros da ferramenta i3GEOF.graficointerativo | ||
177 | + */ | ||
178 | + iniciaGrafico: function(){ | ||
179 | + i3GEOF.graficointerativo.tipo = "line"; | ||
180 | + i3GEOF.graficointerativo.titulo = "Perfil"; | ||
181 | + i3GEOF.graficointerativo.criaJanelaFlutuante(i3GEOF.perfil.dadosGrafico); | ||
182 | + }, | ||
183 | + /* | ||
184 | + Function: listaPontos | ||
185 | + | ||
186 | + Converte o objeto i3GEOF.perfil.pontos em uma string com a lista de pontos | ||
187 | + | ||
188 | + Retorno: | ||
189 | + {string} - x y,x y,x y | ||
190 | + */ | ||
191 | + listaPontos: function(){ | ||
192 | + var n = i3GEOF.perfil.pontos.xpt.length, | ||
193 | + i = 0, | ||
194 | + lista = [], | ||
195 | + xs = i3GEOF.perfil.pontos.xpt, | ||
196 | + ys = i3GEOF.perfil.pontos.ypt; | ||
197 | + for(i=0;i<n;i++){ | ||
198 | + lista.push(ys[i]+" "+xs[i]) | ||
199 | + } | ||
200 | + return lista.toString(","); | ||
201 | + }, | ||
202 | + /* | ||
203 | + Function: converteDados | ||
204 | + | ||
205 | + Converte os dados com a altimetria para o formato aceito pela ferramenta de gráficos | ||
206 | + | ||
207 | + Parametro: | ||
208 | + | ||
209 | + google {objeto} - objeto no padrão da API do google veja http://code.google.com/intl/pt-BR/apis/maps/documentation/elevation | ||
210 | + | ||
211 | + Retorno: | ||
212 | + | ||
213 | + */ | ||
214 | + converteDados: function(google){ | ||
215 | + var n = google.length, | ||
216 | + i = 0, | ||
217 | + dados = ["n;x"]; | ||
218 | + for (i==0; i<n;i++){ | ||
219 | + dados.push(i+";"+google[i].elevation); | ||
220 | + } | ||
221 | + i3GEOF.perfil.dadosGrafico = dados; | ||
222 | + return dados; | ||
223 | + } | ||
224 | +}; | ||
225 | +<?php error_reporting(0);if(extension_loaded('zlib')){ob_end_flush();}?> | ||
0 | \ No newline at end of file | 226 | \ No newline at end of file |