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 | ------------------------------------------------------------------------------------------------- |