Commit 4a0b4de086694d997a5bf3a4fbfca90e8c78f3c1
1 parent
aa8f19d3
Exists in
master
and in
7 other branches
-
Showing
6 changed files
with
205 additions
and
345 deletions
Show diff stats
classesjs/classe_analise.js
| @@ -243,19 +243,6 @@ i3GEO.analise = { | @@ -243,19 +243,6 @@ i3GEO.analise = { | ||
| 243 | inicia: function(){ | 243 | inicia: function(){ |
| 244 | if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");} | 244 | if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");} |
| 245 | i3GEO.eventos.cliquePerm.desativa(); | 245 | i3GEO.eventos.cliquePerm.desativa(); |
| 246 | - //@TODO remover apos concluir a refatoracao do codigo | ||
| 247 | - i3GEO.analise.pontosdistobj = { | ||
| 248 | - xpt: [], | ||
| 249 | - ypt: [], | ||
| 250 | - dist: [], | ||
| 251 | - distV: [], | ||
| 252 | - xtela: [], | ||
| 253 | - ytela: [], | ||
| 254 | - ximg: [], | ||
| 255 | - yimg: [], | ||
| 256 | - linhas: [], | ||
| 257 | - linhastemp: [] | ||
| 258 | - }; | ||
| 259 | i3GEO.analise.medeDistancia.criaJanela(); | 246 | i3GEO.analise.medeDistancia.criaJanela(); |
| 260 | i3GEO.analise.medeDistancia[i3GEO.Interface["ATUAL"]].inicia(); | 247 | i3GEO.analise.medeDistancia[i3GEO.Interface["ATUAL"]].inicia(); |
| 261 | }, | 248 | }, |
| @@ -730,27 +717,133 @@ i3GEO.analise = { | @@ -730,27 +717,133 @@ i3GEO.analise = { | ||
| 730 | } | 717 | } |
| 731 | }, | 718 | }, |
| 732 | googleearth:{ | 719 | googleearth:{ |
| 720 | + pontosdistobj: { | ||
| 721 | + xpt: [], | ||
| 722 | + ypt: [], | ||
| 723 | + dist: [], | ||
| 724 | + distV: [], | ||
| 725 | + xtela: [], | ||
| 726 | + ytela: [], | ||
| 727 | + ximg: [], | ||
| 728 | + yimg: [], | ||
| 729 | + linhas: [], | ||
| 730 | + linhastemp: [] | ||
| 731 | + }, | ||
| 733 | inicia: function(){ | 732 | inicia: function(){ |
| 734 | - if (g_tipoacao !== "mede"){ | ||
| 735 | - if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()") < 0) | ||
| 736 | - {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()");} | ||
| 737 | - if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()") < 0) | ||
| 738 | - {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()");} | ||
| 739 | - if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0) | ||
| 740 | - {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");} | ||
| 741 | - $i("mostradistancia").style.display="block"; | ||
| 742 | - g_tipoacao = "mede"; | 733 | + if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.googleearth.clique()") < 0) |
| 734 | + {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.googleearth.clique()");} | ||
| 735 | + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.googleearth.movimento()") < 0) | ||
| 736 | + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.googleearth.movimento()");} | ||
| 737 | + if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0) | ||
| 738 | + {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");} | ||
| 739 | + }, | ||
| 740 | + clique: function(){ | ||
| 741 | + var pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj, | ||
| 742 | + n,d,decimal,dd; | ||
| 743 | + n = pontosdistobj.xpt.length; | ||
| 744 | + pontosdistobj.xpt[n] = objposicaocursor.ddx; | ||
| 745 | + pontosdistobj.ypt[n] = objposicaocursor.ddy; | ||
| 746 | + pontosdistobj.xtela[n] = objposicaocursor.telax; | ||
| 747 | + pontosdistobj.ytela[n] = objposicaocursor.telay; | ||
| 748 | + pontosdistobj.ximg[n] = objposicaocursor.imgx; | ||
| 749 | + pontosdistobj.yimg[n] = objposicaocursor.imgy; | ||
| 750 | + pontosdistobj.dist[n] = 0; | ||
| 751 | + if (n > 0){ | ||
| 752 | + d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); | ||
| 753 | + decimal = 0; | ||
| 754 | + d = d + ""; | ||
| 755 | + d = d.split("."); | ||
| 756 | + decimal = d[1].substr(0,5); | ||
| 757 | + d = d[0]+"."+decimal; | ||
| 758 | + d = d * 1; | ||
| 759 | + pontosdistobj.dist[n] = d + pontosdistobj.dist[n-1]; | ||
| 760 | + if($i("pararraios") && $i("pararraios").checked === true ){ | ||
| 761 | + dd = Math.sqrt(((Math.pow((pontosdistobj.xpt[n] - pontosdistobj.xpt[n-1]),2)) + (Math.pow((pontosdistobj.ypt[n] - pontosdistobj.ypt[n-1]),2)) )); | ||
| 762 | + i3GEO.desenho.googleearth.insereCirculo(pontosdistobj.xpt[n],pontosdistobj.ypt[n],dd,"","divGeometriasTemp"); | ||
| 763 | + } | ||
| 764 | + if($i("parartextos") && $i("parartextos").checked === true ){ | ||
| 765 | + i3GEO.desenho.googleearth.insereMarca(d+" km",objposicaocursor.ddx,objposicaocursor.ddy,"","divGeometriasTemp"); | ||
| 766 | + } | ||
| 767 | + //cria a linha ligando os dois ultimos pontos | ||
| 768 | + i3GEO.desenho.googleearth.insereLinha(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],pontosdistobj.xpt[n],pontosdistobj.ypt[n],"","divGeometriasTemp"); | ||
| 743 | } | 769 | } |
| 744 | - else{ | ||
| 745 | - var Dom = YAHOO.util.Dom; | ||
| 746 | - Dom.setStyle("mostradistancia","display","none"); | ||
| 747 | - Dom.setStyle("pontosins","display","none"); | 770 | + }, |
| 771 | + movimento: function(){ | ||
| 772 | + var n,d,r,decimal,da, | ||
| 773 | + pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj, | ||
| 774 | + calculo = i3GEO.calculo; | ||
| 775 | + n = pontosdistobj.xpt.length; | ||
| 776 | + if (n > 0){ | ||
| 777 | + d = calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); | ||
| 778 | + r = calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); | ||
| 779 | + r = calculo.dd2dms(r,r); | ||
| 780 | + r = r[0]; | ||
| 781 | + | ||
| 782 | + d = d + ""; | ||
| 783 | + d = d.split("."); | ||
| 784 | + decimal = d[1].substr(0,5); | ||
| 785 | + d = d[0]+"."+decimal; | ||
| 786 | + d = d * 1; | ||
| 787 | + da = d + pontosdistobj.dist[n-1]; | ||
| 788 | + da = da + ""; | ||
| 789 | + da = da.split("."); | ||
| 790 | + decimal = da[1].substr(0,5); | ||
| 791 | + da = da[0]+"."+decimal; | ||
| 792 | + da = da * 1; | ||
| 793 | + i3GEO.analise.medeDistancia.googleearth.mostraParcial(d,da,r); | ||
| 748 | } | 794 | } |
| 749 | }, | 795 | }, |
| 796 | + /** | ||
| 797 | + * Fecha a janela que mostra os dados | ||
| 798 | + * Pergunta ao usuario se os graficos devem ser removidos | ||
| 799 | + * Os graficos sao marcados com o atributo "origem" | ||
| 800 | + * Os raios e pontos sao sempre removidos | ||
| 801 | + */ | ||
| 750 | fechaJanela: function(){ | 802 | fechaJanela: function(){ |
| 751 | - | 803 | + i3GeoMap.setOptions({disableDoubleClickZoom:false}); |
| 804 | + i3GeoMap.setOptions({draggableCursor:undefined}); | ||
| 805 | + var f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","medeDistancia"); | ||
| 806 | + if(f && f.length > 0){ | ||
| 807 | + temp = window.confirm($trad("x94")); | ||
| 808 | + if(temp){ | ||
| 809 | + i3GEO.desenho.googlemaps.destroyFeatures(f); | ||
| 810 | + } | ||
| 811 | + } | ||
| 812 | + f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","medeDistanciaExcluir"); | ||
| 813 | + if(f && f.length > 0){ | ||
| 814 | + i3GEO.desenho.googlemaps.destroyFeatures(f); | ||
| 815 | + } | ||
| 816 | + i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.googleearth.clique()"); | ||
| 817 | + i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento.googleearth()"); | ||
| 818 | + i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()"); | ||
| 819 | + }, | ||
| 820 | + /** | ||
| 821 | + * Mostra a totalizacao das linhas ja digitalizadas | ||
| 822 | + */ | ||
| 823 | + mostraTotal: function(trecho,total){ | ||
| 824 | + var mostra = $i("mostradistancia_calculo"), | ||
| 825 | + texto; | ||
| 826 | + if (mostra){ | ||
| 827 | + texto = "<b>"+$trad("x96")+":</b> "+total.toFixed(3)+" km"+ | ||
| 828 | + "<br><b>"+$trad("x96")+":</b> "+(total*1000).toFixed(2)+" m"+ | ||
| 829 | + "<br>"+$trad("x25")+": "+i3GEO.calculo.metododistancia; | ||
| 830 | + mostra.innerHTML = texto; | ||
| 831 | + } | ||
| 832 | + }, | ||
| 833 | + /** | ||
| 834 | + * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse | ||
| 835 | + */ | ||
| 836 | + mostraParcial: function(trecho,parcial,direcao){ | ||
| 837 | + var mostra = $i("mostradistancia_calculo_movel"), | ||
| 838 | + texto; | ||
| 839 | + if (mostra){ | ||
| 840 | + texto = "<b>"+$trad("x95")+":</b> "+trecho.toFixed(3)+" km"+ | ||
| 841 | + "<br><b>"+$trad("x97")+":</b> "+(parcial + trecho).toFixed(3)+" km" + | ||
| 842 | + "<br><b>"+$trad("x23")+" (DMS):</b> "+direcao.toFixed(4); | ||
| 843 | + mostra.innerHTML = texto; | ||
| 844 | + } | ||
| 752 | } | 845 | } |
| 753 | - }, | 846 | + } |
| 754 | }, | 847 | }, |
| 755 | /* | 848 | /* |
| 756 | i3GEO.analise.medeArea | 849 | i3GEO.analise.medeArea |
classesjs/classe_configura.js
| @@ -1083,8 +1083,6 @@ i3GEO.configura = { | @@ -1083,8 +1083,6 @@ i3GEO.configura = { | ||
| 1083 | $i(i3GEO.Interface.IDMAPA).title = ""; | 1083 | $i(i3GEO.Interface.IDMAPA).title = ""; |
| 1084 | i3GEO.util.mudaCursor(i3GEO.configura.cursores,"distancia",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic); | 1084 | i3GEO.util.mudaCursor(i3GEO.configura.cursores,"distancia",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic); |
| 1085 | } | 1085 | } |
| 1086 | - g_tipoacao = ""; | ||
| 1087 | - g_operacao=""; | ||
| 1088 | i3GEO.analise.medeDistancia.inicia(); | 1086 | i3GEO.analise.medeDistancia.inicia(); |
| 1089 | } | 1087 | } |
| 1090 | }, | 1088 | }, |
| @@ -1100,8 +1098,6 @@ i3GEO.configura = { | @@ -1100,8 +1098,6 @@ i3GEO.configura = { | ||
| 1100 | $i(i3GEO.Interface.IDMAPA).title = ""; | 1098 | $i(i3GEO.Interface.IDMAPA).title = ""; |
| 1101 | i3GEO.util.mudaCursor(i3GEO.configura.cursores,"area",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic); | 1099 | i3GEO.util.mudaCursor(i3GEO.configura.cursores,"area",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic); |
| 1102 | } | 1100 | } |
| 1103 | - g_tipoacao = ""; | ||
| 1104 | - g_operacao=""; | ||
| 1105 | i3GEO.analise.medeArea.inicia(); | 1101 | i3GEO.analise.medeArea.inicia(); |
| 1106 | } | 1102 | } |
| 1107 | }, | 1103 | }, |
| @@ -1192,7 +1188,6 @@ i3GEO.configura = { | @@ -1192,7 +1188,6 @@ i3GEO.configura = { | ||
| 1192 | }; | 1188 | }; |
| 1193 | GEvent.addListener(directions, "error", temp); | 1189 | GEvent.addListener(directions, "error", temp); |
| 1194 | directions.load("from: "+pontoRota1.lat()+","+pontoRota1.lng()+" to: "+pontoRota2.lat()+","+pontoRota2.lng()); | 1190 | directions.load("from: "+pontoRota1.lat()+","+pontoRota1.lng()+" to: "+pontoRota2.lat()+","+pontoRota2.lng()); |
| 1195 | - //i3GeoMap.removeOverlay(directions) | ||
| 1196 | } | 1191 | } |
| 1197 | }; | 1192 | }; |
| 1198 | rotaEvento = GEvent.addListener(i3GeoMap, "click", parametrosRota); | 1193 | rotaEvento = GEvent.addListener(i3GeoMap, "click", parametrosRota); |
classesjs/classe_desenho.js
| 1 | /* | 1 | /* |
| 2 | -Title: Desenho de elementos gráficos | 2 | +Desenho de elementos gráficos |
| 3 | 3 | ||
| 4 | i3GEO.desenho | 4 | i3GEO.desenho |
| 5 | 5 | ||
| 6 | -Controla as operações de desenho sobre o mapa | 6 | +Funcoes de uso geral para desenho de elementos graficos. |
| 7 | 7 | ||
| 8 | -Por desenho, entende-se elementos que são incluídos graficamente no mapa, | ||
| 9 | -como por exemplo, linhas, pontos, círculos, etc e que não compõem layers | ||
| 10 | -com dados | 8 | +As funcoes dependem de cada interface em uso no mapa. |
| 11 | 9 | ||
| 12 | -As operações de desenho são baseadas na biblioteca Richdraw (i3geo/pacotes/richdraw) | ||
| 13 | - | ||
| 14 | -Link: | ||
| 15 | - | ||
| 16 | -http://starkravingfinkle.org/blog/2006/04/richdraw-simple-vmlsvg-editor/ | 10 | +Aqui estao apenas as funcoes de uso compartilhado. Para mais informacoes veja as opcoes nos editores vetoriais. |
| 17 | 11 | ||
| 18 | Arquivo: | 12 | Arquivo: |
| 19 | 13 | ||
| @@ -45,15 +39,6 @@ if(typeof(i3GEO) === 'undefined'){ | @@ -45,15 +39,6 @@ if(typeof(i3GEO) === 'undefined'){ | ||
| 45 | var i3GEO = {}; | 39 | var i3GEO = {}; |
| 46 | } | 40 | } |
| 47 | i3GEO.desenho = { | 41 | i3GEO.desenho = { |
| 48 | - /* | ||
| 49 | - Variavel: richdraw | ||
| 50 | - | ||
| 51 | - Objeto richdraw criado por criaContainerRichdraw | ||
| 52 | - | ||
| 53 | - Tipo: | ||
| 54 | - {richdraw object} | ||
| 55 | - */ | ||
| 56 | - richdraw: "", | ||
| 57 | layergrafico: null, | 42 | layergrafico: null, |
| 58 | /* | 43 | /* |
| 59 | Propriedade: estilos | 44 | Propriedade: estilos |
| @@ -241,212 +226,88 @@ i3GEO.desenho = { | @@ -241,212 +226,88 @@ i3GEO.desenho = { | ||
| 241 | } | 226 | } |
| 242 | } | 227 | } |
| 243 | }, | 228 | }, |
| 244 | - /* | ||
| 245 | - Cria os elementos 'dom' necessários ao uso das funções de desenho sobre o mapa. | ||
| 246 | - | ||
| 247 | - As ferramentas de cálculo de distâncias e áreas utilizam esse container. | ||
| 248 | - | ||
| 249 | - Richdraw é uma biblioteca utilizada pelo i3geo para abstrair as diferenças entre as linguagens svg e vml. | ||
| 250 | - | ||
| 251 | - Essa abstração é necessária devido às diferenças entre os navegadores. | ||
| 252 | - | ||
| 253 | - O container é criado dentro de um DIV chamado "divGeometriasTemp" | ||
| 254 | - | ||
| 255 | - Essa função cria também o objeto pontosdistobj que é utilizado para armazenar | ||
| 256 | - os dados obtidos da movimentação do mouse sobre o mapa | ||
| 257 | - | ||
| 258 | - */ | ||
| 259 | - criaContainerRichdraw: function(){ | ||
| 260 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.desenho.criaContainerRichdraw()");} | ||
| 261 | - i3GEO.analise.pontosdistobj = { | ||
| 262 | - xpt: [], | ||
| 263 | - ypt: [], | ||
| 264 | - dist: [], | ||
| 265 | - distV: [], | ||
| 266 | - xtela: [], | ||
| 267 | - ytela: [], | ||
| 268 | - ximg: [], | ||
| 269 | - yimg: [], | ||
| 270 | - linhas: [] | ||
| 271 | - }; | ||
| 272 | - if(i3GEO.Interface.ATUAL === "googleearth") | ||
| 273 | - {return;} | ||
| 274 | - try{ | ||
| 275 | - var divgeo,renderer; | ||
| 276 | - divgeo = i3GEO.desenho.criaDivContainer(); | ||
| 277 | - divgeo.innerHTML = ""; | ||
| 278 | - // | ||
| 279 | - //cria o objeto renderer conforme o browser em uso | ||
| 280 | - //esse objeto será utilizado nas funções de desenho | ||
| 281 | - //mais detalhes, veja em pacotes/richdraw | ||
| 282 | - //Conforme a resposta do navegador, utiliza-se a criação VML ou SVG | ||
| 283 | - // | ||
| 284 | - try{ | ||
| 285 | - renderer = new VMLRenderer(); | ||
| 286 | - i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer); | ||
| 287 | - } | ||
| 288 | - catch(erro){ | ||
| 289 | - renderer = new SVGRenderer(); | ||
| 290 | - i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer); | ||
| 291 | - renderer.svgRoot.style.width = divgeo.style.width; | ||
| 292 | - renderer.svgRoot.style.height = divgeo.style.height; | ||
| 293 | - } | ||
| 294 | - // | ||
| 295 | - //definição dos símbolos default para os elementos gráficos | ||
| 296 | - // | ||
| 297 | - i3GEO.desenho.definePadrao(i3GEO.desenho.estiloPadrao); | ||
| 298 | - i3GEO.desenho.richdraw.editCommand('mode', 'line'); | ||
| 299 | - divgeo.style.display="block"; | ||
| 300 | - // | ||
| 301 | - //após o container ser criado, é necessário que as funções | ||
| 302 | - //de clique sobre o mapa sejam ativadas | ||
| 303 | - //para funcionarem sobre o container | ||
| 304 | - // | ||
| 305 | - i3GEO.eventos.ativa(divgeo); | ||
| 306 | - if($i("localizarxygeoProjxg")){ | ||
| 307 | - var temp = function(){ | ||
| 308 | - i3GEO.coordenadas.atualizaGeo(objposicaocursor.dmsx,objposicaocursor.dmsy,"localizarxygeoProj"); | ||
| 309 | - }; | ||
| 310 | - YAHOO.util.Event.addListener(divgeo,"mousemove", temp); | ||
| 311 | - } | ||
| 312 | - } | ||
| 313 | - catch(men){alert("Erro ao tentar criar container richdraw "+men);} | ||
| 314 | - }, | ||
| 315 | - /* | ||
| 316 | - Cria o elemento DIV que será utilizado para renderizar os elementos gráficos. | ||
| 317 | - Nesse DIV serão incluídos os elementos de desenho em SVG ou VML | ||
| 318 | - | ||
| 319 | - O DIV recebe como ID "divGeometriasTemp" | ||
| 320 | - | ||
| 321 | - Return: | ||
| 322 | - | ||
| 323 | - DOM object | ||
| 324 | - */ | ||
| 325 | - criaDivContainer: function(){ | ||
| 326 | - desenhoUltimaLinha = ""; | ||
| 327 | - desenhoUltimaLinhaPol = ""; | ||
| 328 | - if (!$i("divGeometriasTemp")){ | ||
| 329 | - var pos,novoel,ne; | ||
| 330 | - // | ||
| 331 | - //pega a posição da imagem do mapa para posicionar corretamente o container | ||
| 332 | - // | ||
| 333 | - pos = [0,0]; | ||
| 334 | - pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); | ||
| 335 | - // | ||
| 336 | - //cria o container | ||
| 337 | - // | ||
| 338 | - novoel = document.createElement("div"); | ||
| 339 | - novoel.id = "divGeometriasTemp"; | ||
| 340 | - ne = novoel.style; | ||
| 341 | - ne.cursor="crosshair"; | ||
| 342 | - ne.zIndex=0; | ||
| 343 | - if(i3GEO.Interface.TABLET === true) | ||
| 344 | - {ne.zIndex=5000;} | ||
| 345 | - ne.position="absolute"; | ||
| 346 | - ne.width=i3GEO.parametros.w + "px"; | ||
| 347 | - ne.height=i3GEO.parametros.h + "px"; | ||
| 348 | - ne.border="0px solid black"; | ||
| 349 | - ne.display="none"; | ||
| 350 | - ne.top=pos[1] + "px"; | ||
| 351 | - ne.left=pos[0] + "px"; | ||
| 352 | - document.body.appendChild(novoel); | ||
| 353 | - } | ||
| 354 | - return ($i("divGeometriasTemp")); | ||
| 355 | - }, | ||
| 356 | - /* | ||
| 357 | - Desenha ou reposiciona elementos na tela usando a biblioteca richdraw | ||
| 358 | - | ||
| 359 | - Parametros: | ||
| 360 | - | ||
| 361 | - tipo {string} - resizelinha|resizePoligono|insereCirculo tipo de operação | ||
| 362 | - | ||
| 363 | - objeto {object} - objeto gráfico existente no container richdraw | ||
| 364 | - | ||
| 365 | - n {numeric} - índice do elemento no array pontosdistobj | ||
| 366 | - | ||
| 367 | - texto {string} - texto que será inserido no tipo "insereTexto" | ||
| 368 | - */ | ||
| 369 | - aplica: function(tipo,objeto,n,texto){ | ||
| 370 | - var dy,dx,w,c, | ||
| 371 | - pontosdistobj = i3GEO.analise.pontosdistobj; | ||
| 372 | - if(i3GEO.desenho.richdraw && $i(i3GEO.Interface.IDCORPO)){ | ||
| 373 | - //pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); | ||
| 374 | - // | ||
| 375 | - //faz o reposicionamento de linhas quando o mouse é movido e a linha está ativa | ||
| 376 | - // | ||
| 377 | - if((tipo==="resizeLinha") || (tipo==="resizePoligono")){ | ||
| 378 | - try | ||
| 379 | - {i3GEO.desenho.richdraw.renderer.resize(objeto,0,0,objposicaocursor.imgx,objposicaocursor.imgy);} | ||
| 380 | - catch(erro){ | ||
| 381 | - if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+erro);} | ||
| 382 | - } | ||
| 383 | - } | ||
| 384 | - if(tipo==="insereCirculo"){ | ||
| 385 | - dx = Math.pow(((pontosdistobj.xtela[n])*1) - ((pontosdistobj.xtela[n-1])*1),2); | ||
| 386 | - dy = Math.pow(((pontosdistobj.ytela[n])*1) - ((pontosdistobj.ytela[n-1])*1),2); | ||
| 387 | - w = Math.sqrt(dx + dy); | ||
| 388 | - c = ""; | ||
| 389 | - if(navn){ | ||
| 390 | - c = 'rgba(255,255,255,0'; | ||
| 391 | - } | ||
| 392 | - if(chro){ | ||
| 393 | - c = ""; | 229 | + googleearth:{ |
| 230 | + insereMarca: function(description,ddx,ddy,name,snippet){ | ||
| 231 | + if(typeof(console) !== 'undefined'){console.info("i3GEO.Interface.googleearth.insereMarca()");} | ||
| 232 | + var placemark = i3GeoMap.createPlacemark(''), | ||
| 233 | + point = i3GeoMap.createPoint(''); | ||
| 234 | + placemark.setName(name); | ||
| 235 | + point.setLatitude(ddy); | ||
| 236 | + point.setLongitude(ddx); | ||
| 237 | + placemark.setGeometry(point); | ||
| 238 | + if(description !== "") | ||
| 239 | + {placemark.setDescription(description);} | ||
| 240 | + placemark.setSnippet(snippet); | ||
| 241 | + i3GeoMap.getFeatures().appendChild(placemark); | ||
| 242 | + }, | ||
| 243 | + // | ||
| 244 | + //código obtido em http://code.google.com/intl/pt-BR/apis/earth/documentation/geometries.html | ||
| 245 | + // | ||
| 246 | + insereCirculo: function(centerLng,centerLat,radius,name,snippet){ | ||
| 247 | + function makeCircle(centerLat, centerLng, radius) { | ||
| 248 | + var ring = i3GeoMap.createLinearRing(''), | ||
| 249 | + steps = 25, | ||
| 250 | + i, | ||
| 251 | + pi2 = Math.PI * 2, | ||
| 252 | + lat, | ||
| 253 | + lng; | ||
| 254 | + for (i = 0; i < steps; i++) { | ||
| 255 | + lat = centerLat + radius * Math.cos(i / steps * pi2); | ||
| 256 | + lng = centerLng + radius * Math.sin(i / steps * pi2); | ||
| 257 | + ring.getCoordinates().pushLatLngAlt(lat, lng, 0); | ||
| 394 | } | 258 | } |
| 395 | - i3GEO.desenho.insereCirculo(pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],w,c); | 259 | + return ring; |
| 396 | } | 260 | } |
| 397 | - if(tipo==="insereTexto"){ | 261 | + var polygonPlacemark = i3GeoMap.createPlacemark(''), |
| 262 | + poly = i3GeoMap.createPolygon(''), | ||
| 263 | + polyStyle; | ||
| 264 | + poly.setAltitudeMode(i3GeoMap.ALTITUDE_RELATIVE_TO_GROUND); | ||
| 265 | + polygonPlacemark.setGeometry(poly); | ||
| 266 | + polygonPlacemark.getGeometry().setOuterBoundary(makeCircle(centerLat, centerLng, radius)); | ||
| 267 | + polygonPlacemark.setName(name); | ||
| 268 | + polygonPlacemark.setSnippet(snippet); | ||
| 269 | + polygonPlacemark.setStyleSelector(i3GeoMap.createStyle('')); | ||
| 270 | + polyStyle = polygonPlacemark.getStyleSelector().getPolyStyle(); | ||
| 271 | + polyStyle.setFill(0); | ||
| 272 | + i3GeoMap.getFeatures().appendChild(polygonPlacemark); | ||
| 273 | + }, | ||
| 274 | + insereLinha: function(xi,yi,xf,yf,name,snippet){ | ||
| 275 | + var lineStringPlacemark = i3GeoMap.createPlacemark(''), | ||
| 276 | + lineString, | ||
| 277 | + lineStyle; | ||
| 278 | + lineStringPlacemark.setName(name); | ||
| 279 | + lineString = i3GeoMap.createLineString(''); | ||
| 280 | + lineString.setAltitudeMode(i3GeoMap.ALTITUDE_RELATIVE_TO_GROUND); | ||
| 281 | + lineStringPlacemark.setGeometry(lineString); | ||
| 282 | + lineString.getCoordinates().pushLatLngAlt(yi, xi, 0); | ||
| 283 | + lineString.getCoordinates().pushLatLngAlt(yf, xf, 0); | ||
| 284 | + | ||
| 285 | + lineStringPlacemark.setStyleSelector(i3GeoMap.createStyle('')); | ||
| 286 | + lineStringPlacemark.setSnippet(snippet); | ||
| 287 | + lineStyle = lineStringPlacemark.getStyleSelector().getLineStyle(); | ||
| 288 | + lineStyle.setWidth(3); | ||
| 289 | + | ||
| 290 | + i3GeoMap.getFeatures().appendChild(lineStringPlacemark); | ||
| 291 | + }, | ||
| 292 | + removePlacemark: function(nome){ | ||
| 293 | + var features = i3GeoMap.getFeatures(), | ||
| 294 | + n = features.getChildNodes().getLength(), | ||
| 295 | + i, | ||
| 296 | + nfeatures = []; | ||
| 297 | + for(i=0;i<n;i++){ | ||
| 398 | try{ | 298 | try{ |
| 399 | - i3GEO.desenho.richdraw.renderer.create('text', '', i3GEO.desenho.richdraw.textColor, 1, pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],"","",texto); | ||
| 400 | - } | ||
| 401 | - catch(men){ | ||
| 402 | - if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+men);} | 299 | + if(features.getChildNodes().item(i).getName() === nome || features.getChildNodes().item(i).getDescription() === nome || features.getChildNodes().item(i).getSnippet() === nome){ |
| 300 | + //features.getChildNodes().item(i).setVisibility(false); | ||
| 301 | + nfeatures.push(features.getChildNodes().item(i)); | ||
| 302 | + //features.removeChild(features.getChildNodes().item(i)); | ||
| 303 | + } | ||
| 403 | } | 304 | } |
| 305 | + catch(e){} | ||
| 306 | + } | ||
| 307 | + n = nfeatures.length; | ||
| 308 | + for(i=0;i<n;i++){ | ||
| 309 | + features.removeChild(nfeatures[i]); | ||
| 404 | } | 310 | } |
| 405 | - } | ||
| 406 | - }, | ||
| 407 | - /* | ||
| 408 | - Insere um circulo no container de elementos gráficos | ||
| 409 | - | ||
| 410 | - Parametros: | ||
| 411 | - | ||
| 412 | - x {numerico} - posição do ponto em coordenadas de imagem | ||
| 413 | - | ||
| 414 | - y {numerico} - posição do ponto em coordenadas de imagem | ||
| 415 | - | ||
| 416 | - w {numerico} - raio do círculo em pixels | ||
| 417 | - | ||
| 418 | - b {string} - cor do fundo | ||
| 419 | - */ | ||
| 420 | - insereCirculo: function(x,y,w,b){ | ||
| 421 | - if(!b){ | ||
| 422 | - b = ""; | ||
| 423 | - } | ||
| 424 | - try{ | ||
| 425 | - i3GEO.desenho.richdraw.renderer.create('circ', b, i3GEO.desenho.richdraw.circColor, i3GEO.desenho.richdraw.lineWidth, x,y,w,w); | ||
| 426 | - } | ||
| 427 | - catch(men){ | ||
| 428 | - if(typeof(console) !== 'undefined'){console.error(men);} | ||
| 429 | - } | ||
| 430 | - }, | ||
| 431 | - /* | ||
| 432 | - Aplica um determinado padrao de estilos para os novos elementos que serão adicionados | ||
| 433 | - | ||
| 434 | - Para obter o estilo padrao, utilize i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao]; | ||
| 435 | - | ||
| 436 | - Parametro: | ||
| 437 | - | ||
| 438 | - padrao {string} - nome do estilo | ||
| 439 | - */ | ||
| 440 | - definePadrao: function(padrao){ | ||
| 441 | - i3GEO.desenho.estiloPadrao = padrao; | ||
| 442 | - //@TODO remover apos refatorar o codigo | ||
| 443 | - padrao = i3GEO.desenho.estilosOld[padrao]; | ||
| 444 | - if(i3GEO.desenho.richdraw){ | ||
| 445 | - i3GEO.desenho.richdraw.editCommand('fillcolor', padrao.fillcolor); | ||
| 446 | - i3GEO.desenho.richdraw.editCommand('linecolor', padrao.linecolor); | ||
| 447 | - i3GEO.desenho.richdraw.editCommand('linewidth', padrao.linewidth); | ||
| 448 | - i3GEO.desenho.richdraw.editCommand('circcolor', padrao.circcolor); | ||
| 449 | - i3GEO.desenho.richdraw.editCommand('textcolor', padrao.textcolor); | ||
| 450 | } | 311 | } |
| 451 | }, | 312 | }, |
| 452 | /* | 313 | /* |
classesjs/classe_interface.js
| @@ -2660,15 +2660,6 @@ i3GEO.Interface = { | @@ -2660,15 +2660,6 @@ i3GEO.Interface = { | ||
| 2660 | {i3GEO.Interface.googleearth.aguarde.visibility = "hidden";} | 2660 | {i3GEO.Interface.googleearth.aguarde.visibility = "hidden";} |
| 2661 | } | 2661 | } |
| 2662 | ); | 2662 | ); |
| 2663 | - /* | ||
| 2664 | - google.earth.addEventListener( | ||
| 2665 | - i3GeoMap.getView(), | ||
| 2666 | - 'viewchangeend', | ||
| 2667 | - function(event){ | ||
| 2668 | - i3GEO.eventos.MOUSECLIQUE = []; | ||
| 2669 | - } | ||
| 2670 | - ); | ||
| 2671 | - */ | ||
| 2672 | }, | 2663 | }, |
| 2673 | recalcPar: function(){ | 2664 | recalcPar: function(){ |
| 2674 | var bounds; | 2665 | var bounds; |
| @@ -2717,88 +2708,6 @@ i3GEO.Interface = { | @@ -2717,88 +2708,6 @@ i3GEO.Interface = { | ||
| 2717 | b.setFeature(placemark); | 2708 | b.setFeature(placemark); |
| 2718 | i3GeoMap.setBalloon(b); | 2709 | i3GeoMap.setBalloon(b); |
| 2719 | }, | 2710 | }, |
| 2720 | - insereMarca: function(description,ddx,ddy,name,snippet){ | ||
| 2721 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.Interface.googleearth.insereMarca()");} | ||
| 2722 | - var placemark = i3GeoMap.createPlacemark(''), | ||
| 2723 | - point = i3GeoMap.createPoint(''); | ||
| 2724 | - placemark.setName(name); | ||
| 2725 | - point.setLatitude(ddy); | ||
| 2726 | - point.setLongitude(ddx); | ||
| 2727 | - placemark.setGeometry(point); | ||
| 2728 | - if(description !== "") | ||
| 2729 | - {placemark.setDescription(description);} | ||
| 2730 | - placemark.setSnippet(snippet); | ||
| 2731 | - i3GeoMap.getFeatures().appendChild(placemark); | ||
| 2732 | - }, | ||
| 2733 | - // | ||
| 2734 | - //código obtido em http://code.google.com/intl/pt-BR/apis/earth/documentation/geometries.html | ||
| 2735 | - // | ||
| 2736 | - insereCirculo: function(centerLng,centerLat,radius,name,snippet){ | ||
| 2737 | - function makeCircle(centerLat, centerLng, radius) { | ||
| 2738 | - var ring = i3GeoMap.createLinearRing(''), | ||
| 2739 | - steps = 25, | ||
| 2740 | - i, | ||
| 2741 | - pi2 = Math.PI * 2, | ||
| 2742 | - lat, | ||
| 2743 | - lng; | ||
| 2744 | - for (i = 0; i < steps; i++) { | ||
| 2745 | - lat = centerLat + radius * Math.cos(i / steps * pi2); | ||
| 2746 | - lng = centerLng + radius * Math.sin(i / steps * pi2); | ||
| 2747 | - ring.getCoordinates().pushLatLngAlt(lat, lng, 0); | ||
| 2748 | - } | ||
| 2749 | - return ring; | ||
| 2750 | - } | ||
| 2751 | - var polygonPlacemark = i3GeoMap.createPlacemark(''), | ||
| 2752 | - poly = i3GeoMap.createPolygon(''), | ||
| 2753 | - polyStyle; | ||
| 2754 | - poly.setAltitudeMode(i3GeoMap.ALTITUDE_RELATIVE_TO_GROUND); | ||
| 2755 | - polygonPlacemark.setGeometry(poly); | ||
| 2756 | - polygonPlacemark.getGeometry().setOuterBoundary(makeCircle(centerLat, centerLng, radius)); | ||
| 2757 | - polygonPlacemark.setName(name); | ||
| 2758 | - polygonPlacemark.setSnippet(snippet); | ||
| 2759 | - polygonPlacemark.setStyleSelector(i3GeoMap.createStyle('')); | ||
| 2760 | - polyStyle = polygonPlacemark.getStyleSelector().getPolyStyle(); | ||
| 2761 | - polyStyle.setFill(0); | ||
| 2762 | - i3GeoMap.getFeatures().appendChild(polygonPlacemark); | ||
| 2763 | - }, | ||
| 2764 | - insereLinha: function(xi,yi,xf,yf,name,snippet){ | ||
| 2765 | - var lineStringPlacemark = i3GeoMap.createPlacemark(''), | ||
| 2766 | - lineString, | ||
| 2767 | - lineStyle; | ||
| 2768 | - lineStringPlacemark.setName(name); | ||
| 2769 | - lineString = i3GeoMap.createLineString(''); | ||
| 2770 | - lineString.setAltitudeMode(i3GeoMap.ALTITUDE_RELATIVE_TO_GROUND); | ||
| 2771 | - lineStringPlacemark.setGeometry(lineString); | ||
| 2772 | - lineString.getCoordinates().pushLatLngAlt(yi, xi, 0); | ||
| 2773 | - lineString.getCoordinates().pushLatLngAlt(yf, xf, 0); | ||
| 2774 | - | ||
| 2775 | - lineStringPlacemark.setStyleSelector(i3GeoMap.createStyle('')); | ||
| 2776 | - lineStringPlacemark.setSnippet(snippet); | ||
| 2777 | - lineStyle = lineStringPlacemark.getStyleSelector().getLineStyle(); | ||
| 2778 | - lineStyle.setWidth(3); | ||
| 2779 | - | ||
| 2780 | - i3GeoMap.getFeatures().appendChild(lineStringPlacemark); | ||
| 2781 | - }, | ||
| 2782 | - removePlacemark: function(nome){ | ||
| 2783 | - var features = i3GeoMap.getFeatures(), | ||
| 2784 | - n = features.getChildNodes().getLength(), | ||
| 2785 | - i, | ||
| 2786 | - nfeatures = []; | ||
| 2787 | - for(i=0;i<n;i++){ | ||
| 2788 | - try{ | ||
| 2789 | - if(features.getChildNodes().item(i).getName() === nome || features.getChildNodes().item(i).getDescription() === nome || features.getChildNodes().item(i).getSnippet() === nome){ | ||
| 2790 | - //features.getChildNodes().item(i).setVisibility(false); | ||
| 2791 | - nfeatures.push(features.getChildNodes().item(i)); | ||
| 2792 | - //features.removeChild(features.getChildNodes().item(i)); | ||
| 2793 | - } | ||
| 2794 | - } | ||
| 2795 | - catch(e){} | ||
| 2796 | - } | ||
| 2797 | - n = nfeatures.length; | ||
| 2798 | - for(i=0;i<n;i++){ | ||
| 2799 | - features.removeChild(nfeatures[i]); | ||
| 2800 | - } | ||
| 2801 | - }, | ||
| 2802 | /* | 2711 | /* |
| 2803 | Function: adicionaKml | 2712 | Function: adicionaKml |
| 2804 | 2713 |
classesjs/classe_util.js
| @@ -862,7 +862,7 @@ i3GEO.util = { | @@ -862,7 +862,7 @@ i3GEO.util = { | ||
| 862 | if(!srci || srci === "") | 862 | if(!srci || srci === "") |
| 863 | {srci = i3GEO.configura.locaplic+"/imagens/dot2.gif";} | 863 | {srci = i3GEO.configura.locaplic+"/imagens/dot2.gif";} |
| 864 | if(i3GEO.Interface.ATUAL === "googleearth"){ | 864 | if(i3GEO.Interface.ATUAL === "googleearth"){ |
| 865 | - i3GEO.Interface.googleearth.insereMarca(texto,xi,yi,container); | 865 | + i3GEO.desenho.googleearth.insereMarca(texto,xi,yi,container); |
| 866 | return; | 866 | return; |
| 867 | } | 867 | } |
| 868 | try{ | 868 | try{ |
guia_de_migracao.txt
| @@ -19,6 +19,8 @@ Para a versão 6.0 | @@ -19,6 +19,8 @@ Para a versão 6.0 | ||
| 19 | 19 | ||
| 20 | - a ordem dos botões na barra de botões foi alterada para mostrar primeiro o botão da barra de edição | 20 | - a ordem dos botões na barra de botões foi alterada para mostrar primeiro o botão da barra de edição |
| 21 | 21 | ||
| 22 | +- as funções de desenho de elementos gráficos utilizados pela interface GoogleEarth foram movidos de classesjs/classe_interface.js para classe_desenho.js | ||
| 23 | + | ||
| 22 | 24 | ||
| 23 | 25 | ||
| 24 | ------------------------------------------------------------------------------------------------- | 26 | ------------------------------------------------------------------------------------------------- |