Commit cff3c9895894403345199291b860003958eb41b3

Authored by Edmar Moretti
1 parent 006cbbbf

correção de sintaxe javascript

classesjs/classe_analise.js
@@ -32,12 +32,14 @@ Você deve ter recebido uma cópia da Licença Pública G @@ -32,12 +32,14 @@ Você deve ter recebido uma cópia da Licença Pública G
32 GNU junto com este programa; se não, escreva para a 32 GNU junto com este programa; se não, escreva para a
33 Free Software Foundation, Inc., no endereço 33 Free Software Foundation, Inc., no endereço
34 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. 34 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
35 -*/ 35 + */
36 if(typeof(i3GEO) === 'undefined'){ 36 if(typeof(i3GEO) === 'undefined'){
37 var i3GEO = {}; 37 var i3GEO = {};
38 } 38 }
39 i3GEO.analise = { 39 i3GEO.analise = {
40 - /* 40 + //armazena os pontos coletados nas funcoes de medicao de area e distancia
  41 + pontosdistobj: {},
  42 + /*
41 Classe: i3GEO.analise.dialogo 43 Classe: i3GEO.analise.dialogo
42 44
43 Abre as telas de dialogo das opcoes de analise 45 Abre as telas de dialogo das opcoes de analise
@@ -47,181 +49,181 @@ i3GEO.analise = { @@ -47,181 +49,181 @@ i3GEO.analise = {
47 Para abrir a mensagem de dialogo de geracao de buffer, utilize 49 Para abrir a mensagem de dialogo de geracao de buffer, utilize
48 50
49 i3GEO.analise.dialogo.buffer() 51 i3GEO.analise.dialogo.buffer()
50 - */  
51 - dialogo:{  
52 - /* 52 + */
  53 + dialogo:{
  54 + /*
53 Function: saiku 55 Function: saiku
54 56
55 Abre a janela de dialogo da ferramenta SAIKU 57 Abre a janela de dialogo da ferramenta SAIKU
56 - */  
57 - saiku: function(){  
58 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.saiku()","saiku","saiku");  
59 - },  
60 - /* 58 + */
  59 + saiku: function(){
  60 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.saiku()","saiku","saiku");
  61 + },
  62 + /*
61 Function: graficoInterativo 63 Function: graficoInterativo
62 64
63 Abre a janela de dialogo da ferramenta graficointerativo versao flash 65 Abre a janela de dialogo da ferramenta graficointerativo versao flash
64 - */  
65 - graficoInterativo: function(){  
66 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo()","graficointerativo","graficointerativo");  
67 - },  
68 - /* 66 + */
  67 + graficoInterativo: function(){
  68 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo()","graficointerativo","graficointerativo");
  69 + },
  70 + /*
69 Function: graficoInterativo1 71 Function: graficoInterativo1
70 72
71 Abre a janela de dialogo da ferramenta graficointerativo 73 Abre a janela de dialogo da ferramenta graficointerativo
72 - */  
73 - graficoInterativo1: function(){  
74 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo1()","graficointerativo1","graficointerativo1");  
75 - },  
76 - /* 74 + */
  75 + graficoInterativo1: function(){
  76 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo1()","graficointerativo1","graficointerativo1");
  77 + },
  78 + /*
77 Function: linhaDoTempo 79 Function: linhaDoTempo
78 80
79 Abre a janela de dialogo da ferramenta linhadotempo 81 Abre a janela de dialogo da ferramenta linhadotempo
80 - */  
81 - linhaDoTempo: function(){  
82 - if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.dialogo.linhaDoTempo()");}  
83 - i3GEO.janela.cria("450px","350px",i3GEO.configura.locaplic+"/ferramentas/linhadotempo/index.php","","","Linha do tempo <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=88' >&nbsp;&nbsp;&nbsp;</a>");  
84 - atualizaLinhaDoTempo = function(){  
85 - var doc = "", ifr = "";  
86 - try{  
87 - ifr = $i("wdocai");  
88 - if (navn){  
89 - if (ifr){  
90 - doc = ifr.contentDocument; 82 + */
  83 + linhaDoTempo: function(){
  84 + if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.dialogo.linhaDoTempo()");}
  85 + i3GEO.janela.cria("450px","350px",i3GEO.configura.locaplic+"/ferramentas/linhadotempo/index.php","","","Linha do tempo <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=88' >&nbsp;&nbsp;&nbsp;</a>");
  86 + atualizaLinhaDoTempo = function(){
  87 + var doc = "", ifr = "";
  88 + try{
  89 + ifr = $i("wdocai");
  90 + if (navn){
  91 + if (ifr){
  92 + doc = ifr.contentDocument;
  93 + }
91 } 94 }
92 - }  
93 - else{  
94 - if(document.frames("wdocai")){  
95 - doc = document.frames("wdocai").document; 95 + else{
  96 + if(document.frames("wdocai")){
  97 + doc = document.frames("wdocai").document;
  98 + }
96 } 99 }
  100 + doc.getElementById("tl") ? window.parent.wdocai.carregaDados() : i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()");
97 } 101 }
98 - doc.getElementById("tl") ? window.parent.wdocai.carregaDados() : i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()");  
99 - }  
100 - catch(e){  
101 - i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()");  
102 - if(typeof(console) !== 'undefined'){console.error("i3GEO.analise.linhaDoTempo "+e);}  
103 - }  
104 - };  
105 - if(i3GEO.eventos.NAVEGAMAPA.toString().search("atualizaLinhaDoTempo()") < 0)  
106 - {i3GEO.eventos.NAVEGAMAPA.push("atualizaLinhaDoTempo()");}  
107 - var ifr = $i("wdocai");  
108 - //ifr.style.height = "75%";  
109 - ifr.style.width = "100%";  
110 - },  
111 - /* 102 + catch(e){
  103 + i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()");
  104 + if(typeof(console) !== 'undefined'){console.error("i3GEO.analise.linhaDoTempo "+e);}
  105 + }
  106 + };
  107 + if(i3GEO.eventos.NAVEGAMAPA.toString().search("atualizaLinhaDoTempo()") < 0)
  108 + {i3GEO.eventos.NAVEGAMAPA.push("atualizaLinhaDoTempo()");}
  109 + var ifr = $i("wdocai");
  110 + //ifr.style.height = "75%";
  111 + ifr.style.width = "100%";
  112 + },
  113 + /*
112 Function: perfil 114 Function: perfil
113 115
114 Abre a janela de dialogo da ferramenta perfil 116 Abre a janela de dialogo da ferramenta perfil
115 - */  
116 - perfil: function(){  
117 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.perfil()","perfil","perfil");  
118 - },  
119 - /* 117 + */
  118 + perfil: function(){
  119 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.perfil()","perfil","perfil");
  120 + },
  121 + /*
120 Function: gradePontos 122 Function: gradePontos
121 123
122 Abre a janela de dialogo da ferramenta gradepontos 124 Abre a janela de dialogo da ferramenta gradepontos
123 - */  
124 - gradePontos: function(){  
125 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePontos()","gradepontos","gradeDePontos");  
126 - },  
127 - /* 125 + */
  126 + gradePontos: function(){
  127 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePontos()","gradepontos","gradeDePontos");
  128 + },
  129 + /*
128 Function: gradePol 130 Function: gradePol
129 131
130 Abre a janela de dialogo da ferramenta gradepol 132 Abre a janela de dialogo da ferramenta gradepol
131 - */  
132 - gradePol: function(){  
133 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePol()","gradepol","gradeDePoligonos");  
134 - },  
135 - /* 133 + */
  134 + gradePol: function(){
  135 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePol()","gradepol","gradeDePoligonos");
  136 + },
  137 + /*
136 Function: gradeHex 138 Function: gradeHex
137 139
138 Abre a janela de dialogo da ferramenta gradehex 140 Abre a janela de dialogo da ferramenta gradehex
139 - */  
140 - gradeHex: function(){  
141 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradeHex()","gradehex","gradeDeHex");  
142 - },  
143 - /* 141 + */
  142 + gradeHex: function(){
  143 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradeHex()","gradehex","gradeDeHex");
  144 + },
  145 + /*
144 Function: analisaGeometrias 146 Function: analisaGeometrias
145 147
146 Abre a janela de dialogo da ferramenta analisageometrias 148 Abre a janela de dialogo da ferramenta analisageometrias
147 - */  
148 - analisaGeometrias: function(){  
149 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.analisaGeometrias()","analisageometrias","analisaGeometrias");  
150 - },  
151 - /* 149 + */
  150 + analisaGeometrias: function(){
  151 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.analisaGeometrias()","analisageometrias","analisaGeometrias");
  152 + },
  153 + /*
152 Function: pontosdistri 154 Function: pontosdistri
153 155
154 Abre a janela de dialogo da ferramenta pontosdistri 156 Abre a janela de dialogo da ferramenta pontosdistri
155 - */  
156 - pontosdistri: function(){  
157 - i3GEO.parametros.r === "nao" ? i3GEO.janela.tempoMsg($trad("x22")) : i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontosdistri()","pontosdistri","pontosDistri");  
158 - },  
159 - /* 157 + */
  158 + pontosdistri: function(){
  159 + i3GEO.parametros.r === "nao" ? i3GEO.janela.tempoMsg($trad("x22")) : i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontosdistri()","pontosdistri","pontosDistri");
  160 + },
  161 + /*
160 Function: pontoempoligono 162 Function: pontoempoligono
161 163
162 Abre a janela de dialogo da ferramenta pontoempoligono 164 Abre a janela de dialogo da ferramenta pontoempoligono
163 - */  
164 - pontoempoligono: function(){  
165 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontoempoligono()","pontoempoligono","pontoEmPoligono");  
166 - },  
167 - /* 165 + */
  166 + pontoempoligono: function(){
  167 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontoempoligono()","pontoempoligono","pontoEmPoligono");
  168 + },
  169 + /*
168 Function: centromassa 170 Function: centromassa
169 171
170 Abre a janela de dialogo da ferramenta centro medio 172 Abre a janela de dialogo da ferramenta centro medio
171 - */  
172 - centromassa: function(){  
173 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centromassa()","centromassa","centromassa");  
174 - },  
175 - /* 173 + */
  174 + centromassa: function(){
  175 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centromassa()","centromassa","centromassa");
  176 + },
  177 + /*
176 Function: nptPol 178 Function: nptPol
177 179
178 Abre a janela de dialogo da ferramenta nptpol 180 Abre a janela de dialogo da ferramenta nptpol
179 - */  
180 - nptPol: function(){  
181 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.nptPol()","nptpol","nptpol");  
182 - },  
183 - /* 181 + */
  182 + nptPol: function(){
  183 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.nptPol()","nptpol","nptpol");
  184 + },
  185 + /*
184 Function: buffer 186 Function: buffer
185 187
186 Abre a janela de dialogo da ferramenta buffer 188 Abre a janela de dialogo da ferramenta buffer
187 - */  
188 - buffer: function(){  
189 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.buffer()","buffer","buffer");  
190 - },  
191 - /* 189 + */
  190 + buffer: function(){
  191 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.buffer()","buffer","buffer");
  192 + },
  193 + /*
192 Function: distanciaptpt 194 Function: distanciaptpt
193 195
194 Abre a janela de dialogo da ferramenta distanciaptpt 196 Abre a janela de dialogo da ferramenta distanciaptpt
195 - */  
196 - distanciaptpt: function(){  
197 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.distanciaptpt()","distanciaptpt","distanciaptpt");  
198 - },  
199 - /* 197 + */
  198 + distanciaptpt: function(){
  199 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.distanciaptpt()","distanciaptpt","distanciaptpt");
  200 + },
  201 + /*
200 Function: centroide 202 Function: centroide
201 203
202 Abre a janela de dialogo da ferramenta centroide 204 Abre a janela de dialogo da ferramenta centroide
203 - */  
204 - centroide: function(){  
205 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centroide()","centroide","centroide");  
206 - },  
207 - /* 205 + */
  206 + centroide: function(){
  207 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centroide()","centroide","centroide");
  208 + },
  209 + /*
208 Function: dissolve 210 Function: dissolve
209 211
210 Abre a janela de dialogo da ferramenta dissolve 212 Abre a janela de dialogo da ferramenta dissolve
211 - */  
212 - dissolve: function(){  
213 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.dissolve()","dissolve","dissolve");  
214 - },  
215 - /* 213 + */
  214 + dissolve: function(){
  215 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.dissolve()","dissolve","dissolve");
  216 + },
  217 + /*
216 Function: agrupaElementos 218 Function: agrupaElementos
217 219
218 Abre a janela de dialogo da ferramenta agrupaelementos 220 Abre a janela de dialogo da ferramenta agrupaelementos
219 - */  
220 - agrupaElementos: function(){  
221 - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.agrupaElementos()","agrupaelementos","agrupaElementos");  
222 - }  
223 - },  
224 - /* 221 + */
  222 + agrupaElementos: function(){
  223 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.agrupaElementos()","agrupaelementos","agrupaElementos");
  224 + }
  225 + },
  226 + /*
225 Classe: i3GEO.analise.medeDistancia 227 Classe: i3GEO.analise.medeDistancia
226 228
227 Ativa e controla a opcao de medicao de distancias. 229 Ativa e controla a opcao de medicao de distancias.
@@ -231,243 +233,293 @@ i3GEO.analise = { @@ -231,243 +233,293 @@ i3GEO.analise = {
231 Quando o botao e acionado, abre-se a janela que mostra o resultado da medida, o icone que segue o mouse e alterado. 233 Quando o botao e acionado, abre-se a janela que mostra o resultado da medida, o icone que segue o mouse e alterado.
232 234
233 Para mostrar o resultado do calculo, e incluido um div especifico. 235 Para mostrar o resultado do calculo, e incluido um div especifico.
234 - */  
235 - medeDistancia:{  
236 - /* 236 + */
  237 + medeDistancia:{
  238 + /*
237 Function: inicia 239 Function: inicia
238 240
239 Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessorios 241 Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessorios
240 242
241 Sao registrados os eventos de clique sobre o mapa e fechamento da janela de resultados 243 Sao registrados os eventos de clique sobre o mapa e fechamento da janela de resultados
242 - */  
243 - inicia: function(){  
244 - if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");}  
245 - i3GEO.eventos.cliquePerm.desativa();  
246 - pontosdistobj = {  
247 - xpt: [],  
248 - ypt: [],  
249 - dist: [],  
250 - distV: [],  
251 - xtela: [],  
252 - ytela: [],  
253 - ximg: [],  
254 - yimg: [],  
255 - linhas: [],  
256 - linhastemp: []  
257 - };  
258 - i3GEO.analise.medeDistancia.criaJanela();  
259 - if (g_tipoacao !== "mede"){  
260 - if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()") < 0)  
261 - {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()");}  
262 - if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()") < 0)  
263 - {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()");}  
264 - if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0)  
265 - {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");}  
266 - $i("mostradistancia").style.display="block";  
267 - if(i3GEO.Interface.ATUAL !== "googleearth"){  
268 - i3GEO.desenho.criaContainerRichdraw();  
269 - i3GEO.desenho.richdraw.lineColor = "black";  
270 - i3GEO.desenho.richdraw.lineWidth = "2px";  
271 - }  
272 - g_tipoacao = "mede";  
273 - }  
274 - else{  
275 - if(i3GEO.Interface.ATUAL !== "googleearth")  
276 - {i3GEO.desenho.richdraw.fecha();}  
277 - var Dom = YAHOO.util.Dom;  
278 - Dom.setStyle("mostradistancia","display","none");  
279 - Dom.setStyle("pontosins","display","none");  
280 - }  
281 - },  
282 - /* 244 + */
  245 + inicia: function(){
  246 + if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");}
  247 + i3GEO.eventos.cliquePerm.desativa();
  248 + i3GEO.analise.pontosdistobj = {
  249 + xpt: [],
  250 + ypt: [],
  251 + dist: [],
  252 + distV: [],
  253 + xtela: [],
  254 + ytela: [],
  255 + ximg: [],
  256 + yimg: [],
  257 + linhas: [],
  258 + linhastemp: []
  259 + };
  260 + i3GEO.analise.medeDistancia.criaJanela();
  261 + i3GEO.analise.i3GEO.Interface["ATUAL"].inicia();
  262 + },
  263 + /*
283 Cria a janela para mostrar os resultados da medicao 264 Cria a janela para mostrar os resultados da medicao
284 - */  
285 - criaJanela: function(){  
286 - var novoel,ins,imagemxy,janela;  
287 - if (!$i("mostradistancia")){  
288 - novoel = document.createElement("div");  
289 - novoel.id = "mostradistancia";  
290 - ins = '<div class="hd" style="font-size:11px">&nbsp;Dist&acirc;ncia aproximada <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'/ajuda_usuario.php?idcategoria=6&idajuda=50" >&nbsp;&nbsp;&nbsp;</a></div>' +  
291 - '<div class="bd" style="text-align:left;padding:3px;" >' +  
292 - '<div style="text-align:left;padding:3px;" id="mostradistancia_calculo" ></div>' +  
293 - '<div style="text-align:left;font-size:10px" >' +  
294 - '<span style="color:navy;cursor:pointer;text-align:left;" >' +  
295 - '<table class=lista7 ><tr><td><input style="cursor:pointer" type="checkbox" id="pararraios" checked /></td><td>Raios</td><td>&nbsp;</td>' +  
296 - '<td>' +  
297 - '<input style="cursor:pointer" type="checkbox" id="parartextos" checked />' +  
298 - '</td><td>Textos<td>' +  
299 - '<td>&nbsp;Estilo:</td><td>'+i3GEO.desenho.caixaEstilos()+'</td>' +  
300 - '<td>&nbsp;<input id=i3GEObotaoPerfil size="22" type="button" value="perfil"></td>' +  
301 - '</tr></table></span>' +  
302 - '</div>' +  
303 - '</div>';  
304 - novoel.innerHTML = ins;  
305 - novoel.style.borderColor="gray";  
306 - document.body.appendChild(novoel);  
307 - janela = new YAHOO.widget.Panel("mostradistancia", {iframe:true,width:"330px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } );  
308 - YAHOO.i3GEO.janela.manager.register(janela);  
309 - janela.render();  
310 - YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeDistancia.fechaJanela);  
311 - }  
312 - else{  
313 - i3GEO.util.defineValor("mostradistancia_calculo","innerHTML","");  
314 - janela = YAHOO.i3GEO.janela.manager.find("mostradistancia");  
315 - }  
316 - janela.show();  
317 - imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO));  
318 - janela.moveTo(imagemxy[0]+150,imagemxy[1]);  
319 - if(navm && i3GEO.Interface.ATUAL === "googleearth" ){  
320 - janela.moveTo(0,0);  
321 - }  
322 - //  
323 - //botao que abre a ferramenta de calculo de perfis.  
324 - //pontosdistobj contem as coordenadas dos pontos  
325 - //  
326 - new YAHOO.widget.Button(  
327 - "i3GEObotaoPerfil",  
328 - {onclick:{fn: function(){  
329 - var js = i3GEO.configura.locaplic+"/ferramentas/perfil/index.js";  
330 - i3GEO.util.scriptTag(js,"i3GEOF.perfil.criaJanelaFlutuante(pontosdistobj)","i3GEOF.perfil_script");  
331 - }}}  
332 - );  
333 - },  
334 - /* 265 + */
  266 + criaJanela: function(){
  267 + var novoel,ins,imagemxy,janela;
  268 + if (!$i("mostradistancia")){
  269 + novoel = document.createElement("div");
  270 + novoel.id = "mostradistancia";
  271 + ins = '<div class="hd" style="font-size:11px">&nbsp;Dist&acirc;ncia aproximada <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'/ajuda_usuario.php?idcategoria=6&idajuda=50" >&nbsp;&nbsp;&nbsp;</a></div>' +
  272 + '<div class="bd" style="text-align:left;padding:3px;" >' +
  273 + '<div style="text-align:left;padding:3px;" id="mostradistancia_calculo" ></div>' +
  274 + '<div style="text-align:left;font-size:10px" >' +
  275 + '<span style="color:navy;cursor:pointer;text-align:left;" >' +
  276 + '<table class=lista7 ><tr><td><input style="cursor:pointer" type="checkbox" id="pararraios" checked /></td><td>Raios</td><td>&nbsp;</td>' +
  277 + '<td>' +
  278 + '<input style="cursor:pointer" type="checkbox" id="parartextos" checked />' +
  279 + '</td><td>Textos<td>' +
  280 + '<td>&nbsp;Estilo:</td><td>'+i3GEO.desenho.caixaEstilos()+'</td>' +
  281 + '<td>&nbsp;<input id=i3GEObotaoPerfil size="22" type="button" value="perfil"></td>' +
  282 + '</tr></table></span>' +
  283 + '</div>' +
  284 + '</div>';
  285 + novoel.innerHTML = ins;
  286 + novoel.style.borderColor="gray";
  287 + document.body.appendChild(novoel);
  288 + janela = new YAHOO.widget.Panel("mostradistancia", {iframe:true,width:"330px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } );
  289 + YAHOO.i3GEO.janela.manager.register(janela);
  290 + janela.render();
  291 + YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeDistancia.fechaJanela);
  292 + }
  293 + else{
  294 + i3GEO.util.defineValor("mostradistancia_calculo","innerHTML","");
  295 + janela = YAHOO.i3GEO.janela.manager.find("mostradistancia");
  296 + }
  297 + janela.show();
  298 + imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO));
  299 + janela.moveTo(imagemxy[0]+150,imagemxy[1]);
  300 + //
  301 + //botao que abre a ferramenta de calculo de perfis.
  302 + //pontosdistobj contem as coordenadas dos pontos
  303 + //
  304 + new YAHOO.widget.Button(
  305 + "i3GEObotaoPerfil",
  306 + {onclick:{fn: function(){
  307 + var js = i3GEO.configura.locaplic+"/ferramentas/perfil/index.js";
  308 + i3GEO.util.scriptTag(js,"i3GEOF.perfil.criaJanelaFlutuante(i3GEO.analise.pontosdistobj)","i3GEOF.perfil_script");
  309 + }}}
  310 + );
  311 + },
  312 + /*
335 Function: fechaJanela 313 Function: fechaJanela
336 314
337 Fecha a janela e os elementos graficos criados para a ferramenta de medicao 315 Fecha a janela e os elementos graficos criados para a ferramenta de medicao
338 - */  
339 - fechaJanela: function(){  
340 - var janela;  
341 - i3GEO.eventos.cliquePerm.ativa();  
342 - i3GEO.Interface.ATUAL !== "googleearth" ? i3GEO.desenho.richdraw.fecha() : i3GEO.Interface.googleearth.removePlacemark("divGeometriasTemp");  
343 - i3GEO.util.removeChild("pontosins");  
344 - if($i("divGeometriasTemp"))  
345 - {i3GEO.desenho.richdraw.fecha();}  
346 - i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.clique()");  
347 - i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento()");  
348 - i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()");  
349 - i3GEO.barraDeBotoes.ativaBotoes();  
350 - janela = YAHOO.i3GEO.janela.manager.find("mostradistancia");  
351 - if(janela){  
352 - YAHOO.i3GEO.janela.manager.remove(janela);  
353 - janela.destroy();  
354 - }  
355 - i3GEO.barraDeBotoes.ativaIcone("pointer");  
356 - },  
357 - /*  
358 - Adiciona uma marca na tela e realiza o calculo de distancia dos pontos inseridos  
359 - */  
360 - clique: function(){  
361 - var n,d,decimal,dd;  
362 - if (g_tipoacao === "mede"){  
363 - n = pontosdistobj.xpt.length;  
364 - pontosdistobj.xpt[n] = objposicaocursor.ddx;  
365 - pontosdistobj.ypt[n] = objposicaocursor.ddy;  
366 - pontosdistobj.xtela[n] = objposicaocursor.telax;  
367 - pontosdistobj.ytela[n] = objposicaocursor.telay;  
368 - pontosdistobj.ximg[n] = objposicaocursor.imgx;  
369 - pontosdistobj.yimg[n] = objposicaocursor.imgy;  
370 - pontosdistobj.dist[n] = 0;  
371 - //cria a linha que sera utilizada para seguir a posicao do mouse e o ultimo ponto  
372 - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){  
373 - try{  
374 - pontosdistobj.linhas[n] = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n]-1),(pontosdistobj.yimg[n]-1),(pontosdistobj.ximg[n]-1),(pontosdistobj.yimg[n]-1));  
375 - }  
376 - catch(e){  
377 - if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho.richdraw "+e);}  
378 - } 316 + */
  317 + fechaJanela: function(){
  318 + var janela;
  319 + i3GEO.eventos.cliquePerm.ativa();
  320 + i3GEO.Interface.ATUAL !== "googleearth" ? i3GEO.desenho.richdraw.fecha() : i3GEO.Interface.googleearth.removePlacemark("divGeometriasTemp");
  321 + i3GEO.util.removeChild("pontosins");
  322 + if($i("divGeometriasTemp"))
  323 + {i3GEO.desenho.richdraw.fecha();}
  324 + i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.clique()");
  325 + i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento()");
  326 + i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()");
  327 + i3GEO.barraDeBotoes.ativaBotoes();
  328 + janela = YAHOO.i3GEO.janela.manager.find("mostradistancia");
  329 + if(janela){
  330 + YAHOO.i3GEO.janela.manager.remove(janela);
  331 + janela.destroy();
379 } 332 }
380 - if (n > 0){  
381 - d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);  
382 - decimal = 0;  
383 - d = d + "";  
384 - d = d.split(".");  
385 - decimal = d[1].substr(0,5);  
386 - d = d[0]+"."+decimal;  
387 - d = d * 1;  
388 - pontosdistobj.dist[n] = d + pontosdistobj.dist[n-1];  
389 - if(navm)  
390 - {i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1]),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n]),pontosdistobj.yimg[n]);}  
391 - if($i("pararraios") && $i("pararraios").checked === true ){  
392 - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){  
393 - i3GEO.desenho.aplica("insereCirculo","",n);  
394 - }  
395 - if(i3GEO.Interface.ATUAL === "googleearth"){  
396 - dd = Math.sqrt(((Math.pow((pontosdistobj.xpt[n] - pontosdistobj.xpt[n-1]),2)) + (Math.pow((pontosdistobj.ypt[n] - pontosdistobj.ypt[n-1]),2)) ));  
397 - i3GEO.Interface.googleearth.insereCirculo(pontosdistobj.xpt[n],pontosdistobj.ypt[n],dd,"","divGeometriasTemp"); 333 + i3GEO.barraDeBotoes.ativaIcone("pointer");
  334 + },
  335 + openlayers:{
  336 + inicia: function(){
  337 + if (g_tipoacao !== "mede"){
  338 + if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()") < 0)
  339 + {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()");}
  340 + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()") < 0)
  341 + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()");}
  342 + if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0)
  343 + {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");}
  344 + $i("mostradistancia").style.display="block";
  345 + if(i3GEO.Interface.ATUAL !== "googleearth"){
  346 + i3GEO.desenho.criaContainerRichdraw();
  347 + i3GEO.desenho.richdraw.lineColor = "black";
  348 + i3GEO.desenho.richdraw.lineWidth = "2px";
398 } 349 }
  350 + g_tipoacao = "mede";
399 } 351 }
400 - if($i("parartextos") && $i("parartextos").checked === true ){  
401 - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){  
402 - i3GEO.desenho.aplica("insereTexto","",n+1,d+" km");  
403 - }  
404 - if(i3GEO.Interface.ATUAL === "googleearth")  
405 - {i3GEO.Interface.googleearth.insereMarca(d+" km",objposicaocursor.ddx,objposicaocursor.ddy,"","divGeometriasTemp");} 352 + else{
  353 + if(i3GEO.Interface.ATUAL !== "googleearth")
  354 + {i3GEO.desenho.richdraw.fecha();}
  355 + var Dom = YAHOO.util.Dom;
  356 + Dom.setStyle("mostradistancia","display","none");
  357 + Dom.setStyle("pontosins","display","none");
406 } 358 }
407 - //cria a linha ligando os dois ultimos pontos  
408 - if(i3GEO.Interface.ATUAL === "googleearth"){  
409 - i3GEO.Interface.googleearth.insereLinha(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],pontosdistobj.xpt[n],pontosdistobj.ypt[n],"","divGeometriasTemp"); 359 + }
  360 + },
  361 + googlemaps:{
  362 + inicia: function(){
  363 + if (g_tipoacao !== "mede"){
  364 + if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()") < 0)
  365 + {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()");}
  366 + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()") < 0)
  367 + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()");}
  368 + if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0)
  369 + {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");}
  370 + $i("mostradistancia").style.display="block";
  371 + i3GEO.desenho.criaContainerRichdraw();
  372 + i3GEO.desenho.richdraw.lineColor = "black";
  373 + i3GEO.desenho.richdraw.lineWidth = "2px";
  374 + g_tipoacao = "mede";
  375 + }
  376 + else{
  377 + i3GEO.desenho.richdraw.fecha();
  378 + var Dom = YAHOO.util.Dom;
  379 + Dom.setStyle("mostradistancia","display","none");
  380 + Dom.setStyle("pontosins","display","none");
410 } 381 }
411 } 382 }
412 - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){  
413 - i3GEO.util.insereMarca.cria(objposicaocursor.imgx,objposicaocursor.imgy,i3GEO.analise.medeDistancia.paraCalculo,"divGeometriasTemp","",i3GEO.configura.locaplic+"/imagens/estasel.png",6,6);  
414 - i3GEO.desenho.insereCirculo(objposicaocursor.imgx,objposicaocursor.imgy,3,"white"); 383 + },
  384 + googleearth:{
  385 + inicia: function(){
  386 + if (g_tipoacao !== "mede"){
  387 + if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()") < 0)
  388 + {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()");}
  389 + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()") < 0)
  390 + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()");}
  391 + if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0)
  392 + {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");}
  393 + $i("mostradistancia").style.display="block";
  394 + g_tipoacao = "mede";
  395 + }
  396 + else{
  397 + var Dom = YAHOO.util.Dom;
  398 + Dom.setStyle("mostradistancia","display","none");
  399 + Dom.setStyle("pontosins","display","none");
  400 + }
415 } 401 }
416 - }  
417 - },  
418 - /*  
419 - Para o calculo de distancias e ativa o botao "pan"  
420 - */  
421 - paraCalculo: function(){  
422 - var botaoPan = $i("pan");  
423 - g_tipoacao = "";  
424 - botaoPan ? botaoPan.onclick.call() : i3GEO.barraDeBotoes.ativaBotoes();  
425 - },  
426 - /*  
427 - Realiza os calculos e desenho da linha conforme o usuario movimenta o mouse  
428 - */  
429 - movimento: function(){  
430 - var n,d,r,decimal,da,mostra,texto,  
431 - //pontosdistobj = i3GEO.analise.medeDistancia.pontosdistobj,  
432 - calculo = i3GEO.calculo;  
433 - if (g_tipoacao === "mede"){  
434 - YAHOO.util.Dom.setStyle("mostradistancia","display","block");  
435 - n = pontosdistobj.xpt.length;  
436 - try{  
437 - //console.info(objposicaocursor.ddx);  
438 - if (n > 0){  
439 - d = calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);  
440 - r = calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);  
441 - r = calculo.dd2dms(r,r);  
442 - r = r[0]; 402 + },
  403 +
  404 +
443 405
  406 +
  407 + //////////////////////////////////////
  408 + /*
  409 + Adiciona uma marca na tela e realiza o calculo de distancia dos pontos inseridos
  410 + */
  411 + clique: function(){
  412 + var n,d,decimal,dd,
  413 + pontosdistobj = i3GEO.analise.pontosdistobj;
  414 + if (g_tipoacao === "mede"){
  415 + n = pontosdistobj.xpt.length;
  416 + pontosdistobj.xpt[n] = objposicaocursor.ddx;
  417 + pontosdistobj.ypt[n] = objposicaocursor.ddy;
  418 + pontosdistobj.xtela[n] = objposicaocursor.telax;
  419 + pontosdistobj.ytela[n] = objposicaocursor.telay;
  420 + pontosdistobj.ximg[n] = objposicaocursor.imgx;
  421 + pontosdistobj.yimg[n] = objposicaocursor.imgy;
  422 + pontosdistobj.dist[n] = 0;
  423 + //cria a linha que sera utilizada para seguir a posicao do mouse e o ultimo ponto
  424 + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){
  425 + try{
  426 + pontosdistobj.linhas[n] = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n]-1),(pontosdistobj.yimg[n]-1),(pontosdistobj.ximg[n]-1),(pontosdistobj.yimg[n]-1));
  427 + }
  428 + catch(e){
  429 + if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho.richdraw "+e);}
  430 + }
  431 + }
  432 + if (n > 0){
  433 + d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);
  434 + decimal = 0;
444 d = d + ""; 435 d = d + "";
445 d = d.split("."); 436 d = d.split(".");
446 decimal = d[1].substr(0,5); 437 decimal = d[1].substr(0,5);
447 d = d[0]+"."+decimal; 438 d = d[0]+"."+decimal;
448 d = d * 1; 439 d = d * 1;
449 - da = d + pontosdistobj.dist[n-1];  
450 - da = da + "";  
451 - da = da.split(".");  
452 - decimal = da[1].substr(0,5);  
453 - da = da[0]+"."+decimal;  
454 - da = da * 1;  
455 -  
456 - mostra = $i("mostradistancia_calculo");  
457 - if (mostra){  
458 - texto = " Dist acum.= "+da+" km <br>atual= "+d+" km <br> "+$trad("x23")+" (DMS)= "+r;  
459 - texto += "<br>"+$trad("x25")+": "+calculo.metododistancia;  
460 - mostra.innerHTML = texto; 440 + pontosdistobj.dist[n] = d + pontosdistobj.dist[n-1];
  441 + if(navm)
  442 + {i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1]),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n]),pontosdistobj.yimg[n]);}
  443 + if($i("pararraios") && $i("pararraios").checked === true ){
  444 + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){
  445 + i3GEO.desenho.aplica("insereCirculo","",n);
  446 + }
  447 + if(i3GEO.Interface.ATUAL === "googleearth"){
  448 + dd = Math.sqrt(((Math.pow((pontosdistobj.xpt[n] - pontosdistobj.xpt[n-1]),2)) + (Math.pow((pontosdistobj.ypt[n] - pontosdistobj.ypt[n-1]),2)) ));
  449 + i3GEO.Interface.googleearth.insereCirculo(pontosdistobj.xpt[n],pontosdistobj.ypt[n],dd,"","divGeometriasTemp");
  450 + }
  451 + }
  452 + if($i("parartextos") && $i("parartextos").checked === true ){
  453 + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){
  454 + i3GEO.desenho.aplica("insereTexto","",n+1,d+" km");
  455 + }
  456 + if(i3GEO.Interface.ATUAL === "googleearth")
  457 + {i3GEO.Interface.googleearth.insereMarca(d+" km",objposicaocursor.ddx,objposicaocursor.ddy,"","divGeometriasTemp");}
  458 + }
  459 + //cria a linha ligando os dois ultimos pontos
  460 + if(i3GEO.Interface.ATUAL === "googleearth"){
  461 + i3GEO.Interface.googleearth.insereLinha(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],pontosdistobj.xpt[n],pontosdistobj.ypt[n],"","divGeometriasTemp");
  462 + }
  463 + }
  464 + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){
  465 + i3GEO.util.insereMarca.cria(objposicaocursor.imgx,objposicaocursor.imgy,i3GEO.analise.medeDistancia.paraCalculo,"divGeometriasTemp","",i3GEO.configura.locaplic+"/imagens/estasel.png",6,6);
  466 + i3GEO.desenho.insereCirculo(objposicaocursor.imgx,objposicaocursor.imgy,3,"white");
  467 + }
  468 + }
  469 + },
  470 + /*
  471 + Para o calculo de distancias e ativa o botao "pan"
  472 + */
  473 + paraCalculo: function(){
  474 + var botaoPan = $i("pan");
  475 + g_tipoacao = "";
  476 + botaoPan ? botaoPan.onclick.call() : i3GEO.barraDeBotoes.ativaBotoes();
  477 + },
  478 + /*
  479 + Realiza os calculos e desenho da linha conforme o usuario movimenta o mouse
  480 + */
  481 + movimento: function(){
  482 + var n,d,r,decimal,da,mostra,texto,
  483 + pontosdistobj = i3GEO.analise.pontosdistobj,
  484 + calculo = i3GEO.calculo;
  485 + if (g_tipoacao === "mede"){
  486 + YAHOO.util.Dom.setStyle("mostradistancia","display","block");
  487 + n = pontosdistobj.xpt.length;
  488 + try{
  489 + //console.info(objposicaocursor.ddx);
  490 + if (n > 0){
  491 + d = calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);
  492 + r = calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);
  493 + r = calculo.dd2dms(r,r);
  494 + r = r[0];
  495 +
  496 + d = d + "";
  497 + d = d.split(".");
  498 + decimal = d[1].substr(0,5);
  499 + d = d[0]+"."+decimal;
  500 + d = d * 1;
  501 + da = d + pontosdistobj.dist[n-1];
  502 + da = da + "";
  503 + da = da.split(".");
  504 + decimal = da[1].substr(0,5);
  505 + da = da[0]+"."+decimal;
  506 + da = da * 1;
  507 +
  508 + mostra = $i("mostradistancia_calculo");
  509 + if (mostra){
  510 + texto = " Dist acum.= "+da+" km <br>atual= "+d+" km <br> "+$trad("x23")+" (DMS)= "+r;
  511 + texto += "<br>"+$trad("x25")+": "+calculo.metododistancia;
  512 + mostra.innerHTML = texto;
  513 + }
  514 + if(i3GEO.Interface.ATUAL !== "googleearth" && navn)
  515 + {i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n);}
461 } 516 }
462 - if(i3GEO.Interface.ATUAL !== "googleearth" && navn)  
463 - {i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n);}  
464 } 517 }
  518 + catch(e){}
465 } 519 }
466 - catch(e){}  
467 } 520 }
468 - }  
469 - },  
470 - /* 521 + },
  522 + /*
471 Classe: i3GEO.analise.medeArea 523 Classe: i3GEO.analise.medeArea
472 524
473 Ativa e controla a opcao de medicao de area. 525 Ativa e controla a opcao de medicao de area.
@@ -477,32 +529,32 @@ i3GEO.analise = { @@ -477,32 +529,32 @@ i3GEO.analise = {
477 Quando o botao e acionado, abre-se a janela que mostra o resultado da medida, o icone que segue o mouse e alterado. 529 Quando o botao e acionado, abre-se a janela que mostra o resultado da medida, o icone que segue o mouse e alterado.
478 530
479 Para mostrar o resultado do calculo, e incluido um div especifico. 531 Para mostrar o resultado do calculo, e incluido um div especifico.
480 - */  
481 - medeArea:{  
482 - /* 532 + */
  533 + medeArea:{
  534 + /*
483 Function: inicia 535 Function: inicia
484 536
485 Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessarios 537 Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessarios
486 538
487 Sao registrados os eventos de clique sobre o mapa e fechamento da janela de resultados 539 Sao registrados os eventos de clique sobre o mapa e fechamento da janela de resultados
488 - */  
489 - inicia: function(){  
490 - if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeArea.inicia()");}  
491 - i3GEO.eventos.cliquePerm.desativa();  
492 - pontosdistobj = {  
493 - xpt: [],  
494 - ypt: [],  
495 - dist: [],  
496 - distV: [],  
497 - xtela: [],  
498 - ytela: [],  
499 - ximg: [],  
500 - yimg: [],  
501 - linhas: [],  
502 - linhastemp: []  
503 - };  
504 - var x,y,ll1,ll2,d,  
505 - calculo = i3GEO.calculo, 540 + */
  541 + inicia: function(){
  542 + if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeArea.inicia()");}
  543 + i3GEO.eventos.cliquePerm.desativa();
  544 + i3GEO.analise.pontosdistobj = {
  545 + xpt: [],
  546 + ypt: [],
  547 + dist: [],
  548 + distV: [],
  549 + xtela: [],
  550 + ytela: [],
  551 + ximg: [],
  552 + yimg: [],
  553 + linhas: [],
  554 + linhastemp: []
  555 + };
  556 + var x,y,ll1,ll2,d,
  557 + calculo = i3GEO.calculo,
506 montacontainer = function(){ 558 montacontainer = function(){
507 var desenho = i3GEO.desenho; 559 var desenho = i3GEO.desenho;
508 $i("mostraarea_calculo").innerHTML = "Clique no mapa para desenhar o poligono. Clique duas vezes para concluir"; 560 $i("mostraarea_calculo").innerHTML = "Clique no mapa para desenhar o poligono. Clique duas vezes para concluir";
@@ -512,149 +564,150 @@ i3GEO.analise = { @@ -512,149 +564,150 @@ i3GEO.analise = {
512 desenho.richdraw.lineColor = "green"; 564 desenho.richdraw.lineColor = "green";
513 desenho.richdraw.lineWidth = "2px"; 565 desenho.richdraw.lineWidth = "2px";
514 }; 566 };
515 - i3GEO.analise.medeArea.criaJanela();  
516 - if (g_tipoacao !== "area"){  
517 - $i("mostraarea_calculo").innerHTML = "";  
518 - if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeArea.clique()") < 0)  
519 - {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeArea.clique()");}  
520 - if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeArea.movimento()") < 0)  
521 - {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeArea.movimento()");}  
522 - if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeArea.fechaJanela()") < 0)  
523 - {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeArea.fechaJanela()");}  
524 - //  
525 - //a API do Openlayers e GoogleMaps tem uma funcao propria de obtencao da resolucao de cada pixel  
526 - //essa funcao e embutida em i3GEO.calculo.tela2dd  
527 - //  
528 - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){  
529 - x = parseInt(i3GEO.parametros.w / 2,10);  
530 - y = parseInt(i3GEO.parametros.h / 2,10);  
531 - ll1 = calculo.tela2dd(x,y,"","");  
532 - ll2 = calculo.tela2dd(x + 1,y,"","");  
533 - d = calculo.distancia(ll1[0],ll1[1],ll2[0],ll2[1]);  
534 - d = d * 1000;  
535 - g_areapixel = d * d;  
536 - g_areapixel < 0 ? i3GEO.janela.tempoMsg("Nao e possivel calcular a area. Entre em contato com o administrador do sistema.") : montacontainer(); 567 + i3GEO.analise.medeArea.criaJanela();
  568 + if (g_tipoacao !== "area"){
  569 + $i("mostraarea_calculo").innerHTML = "";
  570 + if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeArea.clique()") < 0)
  571 + {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeArea.clique()");}
  572 + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeArea.movimento()") < 0)
  573 + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeArea.movimento()");}
  574 + if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeArea.fechaJanela()") < 0)
  575 + {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeArea.fechaJanela()");}
  576 + //
  577 + //a API do Openlayers e GoogleMaps tem uma funcao propria de obtencao da resolucao de cada pixel
  578 + //essa funcao e embutida em i3GEO.calculo.tela2dd
  579 + //
  580 + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){
  581 + x = parseInt(i3GEO.parametros.w / 2,10);
  582 + y = parseInt(i3GEO.parametros.h / 2,10);
  583 + ll1 = calculo.tela2dd(x,y,"","");
  584 + ll2 = calculo.tela2dd(x + 1,y,"","");
  585 + d = calculo.distancia(ll1[0],ll1[1],ll2[0],ll2[1]);
  586 + d = d * 1000;
  587 + g_areapixel = d * d;
  588 + g_areapixel < 0 ? i3GEO.janela.tempoMsg("Nao e possivel calcular a area. Entre em contato com o administrador do sistema.") : montacontainer();
  589 + }
537 } 590 }
538 - }  
539 - else{i3GEO.desenho.richdraw.fecha();}  
540 - },  
541 - /* 591 + else{i3GEO.desenho.richdraw.fecha();}
  592 + },
  593 + /*
542 Cria a janela para mostrar os resultados da medicao 594 Cria a janela para mostrar os resultados da medicao
543 - */  
544 - criaJanela: function(){  
545 - var novoel,ins,imagemxy,janela;  
546 - if (!$i("mostraarea")){  
547 - novoel = document.createElement("div");  
548 - novoel.id = "mostraarea";  
549 - ins = '<div class="hd" >&Aacute;rea aproximada <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'"/ajuda_usuario.php?idcategoria=6&idajuda=51" >&nbsp;&nbsp;&nbsp;</a></div>' +  
550 - '<div class="bd" style="text-align:left;padding:3px;font-size:10px" >' +  
551 - 'Estilo: '+i3GEO.desenho.caixaEstilos()+'<br>' +  
552 - '<div style="text-align:left;padding:3px;font-size:10px" id="mostraarea_calculo" ></div>' +  
553 - '</div>';  
554 - novoel.innerHTML = ins;  
555 - novoel.style.borderColor="gray";  
556 - document.body.appendChild(novoel);  
557 - janela = new YAHOO.widget.Panel("mostraarea", {width:"220px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } );  
558 - YAHOO.i3GEO.janela.manager.register(janela);  
559 - janela.render();  
560 - YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeArea.fechaJanela);  
561 - }  
562 - else{  
563 - janela = YAHOO.i3GEO.janela.manager.find("mostraarea");  
564 - }  
565 - janela.show();  
566 - imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO));  
567 - janela.moveTo(imagemxy[0]+150,imagemxy[1]);  
568 - },  
569 - /* 595 + */
  596 + criaJanela: function(){
  597 + var novoel,ins,imagemxy,janela;
  598 + if (!$i("mostraarea")){
  599 + novoel = document.createElement("div");
  600 + novoel.id = "mostraarea";
  601 + ins = '<div class="hd" >&Aacute;rea aproximada <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'"/ajuda_usuario.php?idcategoria=6&idajuda=51" >&nbsp;&nbsp;&nbsp;</a></div>' +
  602 + '<div class="bd" style="text-align:left;padding:3px;font-size:10px" >' +
  603 + 'Estilo: '+i3GEO.desenho.caixaEstilos()+'<br>' +
  604 + '<div style="text-align:left;padding:3px;font-size:10px" id="mostraarea_calculo" ></div>' +
  605 + '</div>';
  606 + novoel.innerHTML = ins;
  607 + novoel.style.borderColor="gray";
  608 + document.body.appendChild(novoel);
  609 + janela = new YAHOO.widget.Panel("mostraarea", {width:"220px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } );
  610 + YAHOO.i3GEO.janela.manager.register(janela);
  611 + janela.render();
  612 + YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeArea.fechaJanela);
  613 + }
  614 + else{
  615 + janela = YAHOO.i3GEO.janela.manager.find("mostraarea");
  616 + }
  617 + janela.show();
  618 + imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO));
  619 + janela.moveTo(imagemxy[0]+150,imagemxy[1]);
  620 + },
  621 + /*
570 Function: fechaJanela 622 Function: fechaJanela
571 623
572 Fecha a janela e os elementos graficos criados para a ferramenta de medicao 624 Fecha a janela e os elementos graficos criados para a ferramenta de medicao
573 - */  
574 - fechaJanela: function(){  
575 - var janela;  
576 - i3GEO.eventos.cliquePerm.ativa();  
577 - i3GEO.desenho.richdraw.fecha();  
578 - i3GEO.util.removeChild("pontosArea",document.body);  
579 - i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeArea.clique()");  
580 - i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeArea.movimento()");  
581 - i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeArea.fechaJanela()");  
582 - i3GEO.barraDeBotoes.ativaBotoes();  
583 - janela = YAHOO.i3GEO.janela.manager.find("mostraarea");  
584 - if(janela){  
585 - YAHOO.i3GEO.janela.manager.remove(janela);  
586 - janela.destroy();  
587 - }  
588 - i3GEO.barraDeBotoes.ativaIcone("pointer");  
589 - },  
590 - /* 625 + */
  626 + fechaJanela: function(){
  627 + var janela;
  628 + i3GEO.eventos.cliquePerm.ativa();
  629 + i3GEO.desenho.richdraw.fecha();
  630 + i3GEO.util.removeChild("pontosArea",document.body);
  631 + i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeArea.clique()");
  632 + i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeArea.movimento()");
  633 + i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeArea.fechaJanela()");
  634 + i3GEO.barraDeBotoes.ativaBotoes();
  635 + janela = YAHOO.i3GEO.janela.manager.find("mostraarea");
  636 + if(janela){
  637 + YAHOO.i3GEO.janela.manager.remove(janela);
  638 + janela.destroy();
  639 + }
  640 + i3GEO.barraDeBotoes.ativaIcone("pointer");
  641 + },
  642 + /*
591 Adiciona uma marca na tela e realiza o calculo de distancia dos pontos inseridos 643 Adiciona uma marca na tela e realiza o calculo de distancia dos pontos inseridos
592 - */  
593 - clique: function(){  
594 - var n,m;  
595 - //pontosdistobj = i3GEO.analise.medeArea.pontosdistobj;  
596 - if (g_tipoacao === "area"){  
597 - n = pontosdistobj.xpt.length;  
598 - pontosdistobj.xpt[n] = objposicaocursor.ddx;  
599 - pontosdistobj.ypt[n] = objposicaocursor.ddy;  
600 - pontosdistobj.xtela[n] = objposicaocursor.telax;  
601 - pontosdistobj.ytela[n] = objposicaocursor.telay;  
602 - pontosdistobj.ximg[n] = objposicaocursor.imgx;  
603 - pontosdistobj.yimg[n] = objposicaocursor.imgy;  
604 - pontosdistobj.dist[n] = 0;  
605 - //inclui a linha para ligar com o ponto inicial  
606 - if (n === 0){  
607 - try {  
608 - pontosdistobj.linhastemp = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1,pontosdistobj.ximg[0]-1,pontosdistobj.yimg[0]-1); 644 + */
  645 + clique: function(){
  646 + var n,m;
  647 + pontosdistobj = i3GEO.analise.pontosdistobj;
  648 + if (g_tipoacao === "area"){
  649 + n = pontosdistobj.xpt.length;
  650 + pontosdistobj.xpt[n] = objposicaocursor.ddx;
  651 + pontosdistobj.ypt[n] = objposicaocursor.ddy;
  652 + pontosdistobj.xtela[n] = objposicaocursor.telax;
  653 + pontosdistobj.ytela[n] = objposicaocursor.telay;
  654 + pontosdistobj.ximg[n] = objposicaocursor.imgx;
  655 + pontosdistobj.yimg[n] = objposicaocursor.imgy;
  656 + pontosdistobj.dist[n] = 0;
  657 + //inclui a linha para ligar com o ponto inicial
  658 + if (n === 0){
  659 + try {
  660 + pontosdistobj.linhastemp = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1,pontosdistobj.ximg[0]-1,pontosdistobj.yimg[0]-1);
  661 + }
  662 + catch(e){
  663 + if(typeof(console) !== 'undefined'){console.error(e);}
  664 + }
609 } 665 }
610 - catch(e){  
611 - if(typeof(console) !== 'undefined'){console.error(e);} 666 + else{
  667 + if(navm)
  668 + {i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1]),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n]),pontosdistobj.yimg[n]);}
  669 + //parece qe tem um problema de versao do ie aqui
  670 + //if(navm)
  671 + //{i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n]);}
612 } 672 }
  673 + try{
  674 + pontosdistobj.linhas[n] = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1,pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1);
  675 + }
  676 + catch(men){
  677 + if(typeof(console) !== 'undefined'){console.error(men);}
  678 + }
  679 + m = i3GEO.calculo.area(pontosdistobj.xtela,pontosdistobj.ytela,g_areapixel);
  680 + i3GEO.util.defineValor("mostraarea_calculo","innerHTML","<br>m2</b>= "+m.toFixed(2)+"<br><b>km2</b>= "+(m/1000000).toFixed(2)+"<br><b>ha</b>= "+(m/10000).toFixed(2));
  681 + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){
  682 + i3GEO.util.insereMarca.cria(objposicaocursor.imgx,objposicaocursor.imgy,i3GEO.analise.medeArea.paraCalculo,"divGeometriasTemp","",i3GEO.configura.locaplic+"/imagens/estasel.png",6,6);
  683 + i3GEO.desenho.insereCirculo(objposicaocursor.imgx,objposicaocursor.imgy,3,"white");
  684 + }
  685 + if(i3GEO.Interface.ATUAL === "googleearth")
  686 + {i3GEO.util.insereMarca.cria(objposicaocursor.ddx,objposicaocursor.ddy,i3GEO.analise.medeArea.paraCalculo,"divGeometriasTemp","");}
613 } 687 }
614 - else{  
615 - if(navm)  
616 - {i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1]),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n]),pontosdistobj.yimg[n]);}  
617 - //parece qe tem um problema de versao do ie aqui  
618 - //if(navm)  
619 - //{i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n]);}  
620 - }  
621 - try{  
622 - pontosdistobj.linhas[n] = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1,pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1);  
623 - }  
624 - catch(men){  
625 - if(typeof(console) !== 'undefined'){console.error(men);}  
626 - }  
627 - m = i3GEO.calculo.area(pontosdistobj,g_areapixel);  
628 - i3GEO.util.defineValor("mostraarea_calculo","innerHTML","<br>m2</b>= "+m.toFixed(2)+"<br><b>km2</b>= "+(m/1000000).toFixed(2)+"<br><b>ha</b>= "+(m/10000).toFixed(2));  
629 - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){  
630 - i3GEO.util.insereMarca.cria(objposicaocursor.imgx,objposicaocursor.imgy,i3GEO.analise.medeArea.paraCalculo,"divGeometriasTemp","",i3GEO.configura.locaplic+"/imagens/estasel.png",6,6);  
631 - i3GEO.desenho.insereCirculo(objposicaocursor.imgx,objposicaocursor.imgy,3,"white");  
632 - }  
633 - if(i3GEO.Interface.ATUAL === "googleearth")  
634 - {i3GEO.util.insereMarca.cria(objposicaocursor.ddx,objposicaocursor.ddy,i3GEO.analise.medeArea.paraCalculo,"divGeometriasTemp","");}  
635 - }  
636 - },  
637 - /* 688 + },
  689 + /*
638 Para o calculo de area e ativa o botao "pan" 690 Para o calculo de area e ativa o botao "pan"
639 - */  
640 - paraCalculo: function(){  
641 - var botaoPan = $i("pan");  
642 - g_tipoacao = "";  
643 - botaoPan ? botaoPan.onclick.call() : i3GEO.barraDeBotoes.ativaBotoes();  
644 - },  
645 - /* 691 + */
  692 + paraCalculo: function(){
  693 + var botaoPan = $i("pan");
  694 + g_tipoacao = "";
  695 + botaoPan ? botaoPan.onclick.call() : i3GEO.barraDeBotoes.ativaBotoes();
  696 + },
  697 + /*
646 Realiza o desenho do poligono conforme o usuario movimenta o mouse 698 Realiza o desenho do poligono conforme o usuario movimenta o mouse
647 - */  
648 - movimento: function(){  
649 - var n;  
650 - if (g_tipoacao === "area"){  
651 - n = pontosdistobj.xpt.length;  
652 - if (n > 0){  
653 - i3GEO.desenho.aplica("resizePoligono",pontosdistobj.linhastemp,1);  
654 - i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n); 699 + */
  700 + movimento: function(){
  701 + var n,
  702 + pontosdistobj = i3GEO.analise.pontosdistobj;
  703 + if (g_tipoacao === "area"){
  704 + n = pontosdistobj.xpt.length;
  705 + if (n > 0){
  706 + i3GEO.desenho.aplica("resizePoligono",pontosdistobj.linhastemp,1);
  707 + i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n);
  708 + }
655 } 709 }
656 } 710 }
657 } 711 }
658 - }  
659 }; 712 };
660 //YAHOO.log("carregou classe analise", "Classes i3geo"); 713 //YAHOO.log("carregou classe analise", "Classes i3geo");
661 \ No newline at end of file 714 \ No newline at end of file
classesjs/classe_calculo.js
@@ -266,7 +266,9 @@ i3GEO.calculo = { @@ -266,7 +266,9 @@ i3GEO.calculo = {
266 266
267 Parametros: 267 Parametros:
268 268
269 - pontos {Array} - array com a lista de pontos pontos.xtela corresponde a um array com os valores de x e pontos.ytela aos valores de y 269 + x {Array} - array com a lista de pontos x
  270 +
  271 + y {Array} - array com a lista de pontos y
270 272
271 pixel {Numeric} - &aacute;rea de cada pixel no mapa 273 pixel {Numeric} - &aacute;rea de cada pixel no mapa
272 274
@@ -275,21 +277,23 @@ i3GEO.calculo = { @@ -275,21 +277,23 @@ i3GEO.calculo = {
275 Type: 277 Type:
276 {Numeric} 278 {Numeric}
277 */ 279 */
278 - area: function(pontos,pixel){ 280 + area: function(x,y,pixel){
279 if(typeof(console) !== 'undefined'){console.info("i3GEO.calculo.area()");} 281 if(typeof(console) !== 'undefined'){console.info("i3GEO.calculo.area()");}
280 - var $polygon_area,$i,$array_length; 282 + var n = x.length,
  283 + $polygon_area,$i;
281 try{ 284 try{
282 - if(pontos.xpt.length > 2){  
283 - $array_length = pontos.xpt.length;  
284 - pontos.xtela.push(pontos.xtela[0]);  
285 - pontos.ytela.push(pontos.ytela[0]); 285 + if(n > 2){
  286 + x.push(x[0]);
  287 + y.push(y[0]);
286 $polygon_area = 0; 288 $polygon_area = 0;
287 - for ($i=0;$i < $array_length;$i+=1)  
288 - {$polygon_area += ((pontos.xtela[$i] * pontos.ytela[$i+1])-(pontos.ytela[$i] * pontos.xtela[$i+1]));} 289 + for ($i=0;$i < n;$i+=1){
  290 + $polygon_area += ((x[$i] * y[$i+1])-(y[$i] * x[$i+1]));
  291 + }
289 $polygon_area = Math.abs($polygon_area) / 2; 292 $polygon_area = Math.abs($polygon_area) / 2;
290 } 293 }
291 - else  
292 - {$polygon_area = 0;} 294 + else{
  295 + $polygon_area = 0;
  296 + }
293 return $polygon_area*pixel; 297 return $polygon_area*pixel;
294 } 298 }
295 catch(e){return (0);} 299 catch(e){return (0);}
classesjs/classe_desenho.js
@@ -40,148 +40,149 @@ Voc&amp;ecirc; deve ter recebido uma c&amp;oacute;pia da Licen&amp;ccedil;a P&amp;uacute;blica G @@ -40,148 +40,149 @@ Voc&amp;ecirc; deve ter recebido uma c&amp;oacute;pia da Licen&amp;ccedil;a P&amp;uacute;blica G
40 GNU junto com este programa; se n&atilde;o, escreva para a 40 GNU junto com este programa; se n&atilde;o, escreva para a
41 Free Software Foundation, Inc., no endere&ccedil;o 41 Free Software Foundation, Inc., no endere&ccedil;o
42 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. 42 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
43 -*/ 43 + */
44 if(typeof(i3GEO) === 'undefined'){ 44 if(typeof(i3GEO) === 'undefined'){
45 var i3GEO = {}; 45 var i3GEO = {};
46 } 46 }
47 i3GEO.desenho = { 47 i3GEO.desenho = {
48 - /* 48 + /*
49 Variavel: richdraw 49 Variavel: richdraw
50 50
51 Objeto richdraw criado por criaContainerRichdraw 51 Objeto richdraw criado por criaContainerRichdraw
52 52
53 Tipo: 53 Tipo:
54 {richdraw object} 54 {richdraw object}
55 - */  
56 - richdraw: "",  
57 - /* 55 + */
  56 + richdraw: "",
  57 + /*
58 Propriedade: estilos 58 Propriedade: estilos
59 59
60 Estilos que podem ser utilizados para desenhar os elementos 60 Estilos que podem ser utilizados para desenhar os elementos
61 - */  
62 - estilos: {  
63 - "normal":{  
64 - fillcolor: 'red',  
65 - linecolor: 'black',  
66 - linewidth: '1',  
67 - circcolor: 'white',  
68 - textcolor: 'gray'  
69 - },  
70 - "palido":{  
71 - fillcolor: 'gray',  
72 - linecolor: 'gray',  
73 - linewidth: '1',  
74 - circcolor: 'gray',  
75 - textcolor: 'gray'  
76 - },  
77 - "vermelho":{  
78 - fillcolor: 'gray',  
79 - linecolor: 'red',  
80 - linewidth: '1',  
81 - circcolor: 'pink',  
82 - textcolor: 'brown' 61 + */
  62 + estilos: {
  63 + "normal":{
  64 + fillcolor: 'red',
  65 + linecolor: 'black',
  66 + linewidth: '1',
  67 + circcolor: 'white',
  68 + textcolor: 'gray'
  69 + },
  70 + "palido":{
  71 + fillcolor: 'gray',
  72 + linecolor: 'gray',
  73 + linewidth: '1',
  74 + circcolor: 'gray',
  75 + textcolor: 'gray'
  76 + },
  77 + "vermelho":{
  78 + fillcolor: 'gray',
  79 + linecolor: 'red',
  80 + linewidth: '1',
  81 + circcolor: 'pink',
  82 + textcolor: 'brown'
  83 + },
  84 + "verde":{
  85 + fillcolor: 'gray',
  86 + linecolor: 'green',
  87 + linewidth: '1',
  88 + circcolor: 'DarkGreen',
  89 + textcolor: 'GreenYellow'
  90 + }
83 }, 91 },
84 - "verde":{  
85 - fillcolor: 'gray',  
86 - linecolor: 'green',  
87 - linewidth: '1',  
88 - circcolor: 'DarkGreen',  
89 - textcolor: 'GreenYellow'  
90 - }  
91 - },  
92 - /* 92 + /*
93 Propriedade: estiloPadrao 93 Propriedade: estiloPadrao
94 94
95 Estilo utilizado como padr&atilde;o 95 Estilo utilizado como padr&atilde;o
96 - */  
97 - estiloPadrao: "normal",  
98 - /*  
99 - Fun&ccedil;&otilde;es utilizadas quando o mapa baseia-se na interface OpenLayers  
100 - */  
101 - openlayers: { 96 + */
  97 + estiloPadrao: "normal",
102 /* 98 /*
103 - * Cria o layer onde os desenhos serao inseridos 99 + Fun&ccedil;&otilde;es utilizadas quando o mapa baseia-se na interface OpenLayers
104 */ 100 */
105 - inicia: function(){  
106 - if(!i3GEO.desenho.layergrafico || i3GEO.desenho.layergrafico != undefined){  
107 - i3GEO.desenho.openlayers.criaLayerGrafico();  
108 - }  
109 - },  
110 - //i3GEO.editorOL.layergrafico  
111 - criaLayerGrafico: function(){  
112 - var sketchSymbolizers = {  
113 - "Point": {  
114 - fillColor: "rgb(${fillColor})",  
115 - fillOpacity: "${opacidade}",  
116 - strokeWidth: "${strokeWidth}",  
117 - strokeOpacity: "${opacidade}",  
118 - strokeColor: "rgb(${strokeColor})",  
119 - label: "${texto}",  
120 - pointRadius: "${pointRadius}",  
121 - graphicName: "${graphicName}",  
122 - fontSize: "${fontSize}",  
123 - fontColor: "rgb(${fontColor})",  
124 - fontFamily: "Arial",  
125 - fontWeight: "normal",  
126 - labelAlign: "lb",  
127 - labelXOffset: "3",  
128 - labelYOffset: "3",  
129 - externalGraphic: "${externalGraphic}"  
130 - },  
131 - "Line": {  
132 - strokeWidth: "${strokeWidth}",  
133 - strokeOpacity: "${opacidade}",  
134 - strokeColor: "rgb(${strokeColor})"  
135 - },  
136 - "Polygon": {  
137 - strokeWidth: "${strokeWidth}",  
138 - strokeOpacity: "${opacidade}",  
139 - strokeColor: "rgb(${strokeColor})",  
140 - fillColor: "rgb(${fillColor})",  
141 - fillOpacity: "${opacidade}",  
142 - zIndex: 5000  
143 - } 101 + openlayers: {
  102 + /*
  103 + * Cria o layer onde os desenhos serao inseridos
  104 + */
  105 + inicia: function(){
  106 + if(!i3GEO.desenho.layergrafico || i3GEO.desenho.layergrafico != undefined){
  107 + i3GEO.desenho.openlayers.criaLayerGrafico();
  108 + }
  109 + },
  110 + //i3GEO.editorOL.layergrafico
  111 + criaLayerGrafico: function(){
  112 + var sketchSymbolizers = {
  113 + "Point": {
  114 + fillColor: "rgb(${fillColor})",
  115 + fillOpacity: "${opacidade}",
  116 + strokeWidth: "${strokeWidth}",
  117 + strokeOpacity: "${opacidade}",
  118 + strokeColor: "rgb(${strokeColor})",
  119 + label: "${texto}",
  120 + pointRadius: "${pointRadius}",
  121 + graphicName: "${graphicName}",
  122 + fontSize: "${fontSize}",
  123 + fontColor: "rgb(${fontColor})",
  124 + fontFamily: "Arial",
  125 + fontWeight: "normal",
  126 + labelAlign: "lb",
  127 + labelXOffset: "3",
  128 + labelYOffset: "3",
  129 + externalGraphic: "${externalGraphic}"
  130 + },
  131 + "Line": {
  132 + strokeWidth: "${strokeWidth}",
  133 + strokeOpacity: "${opacidade}",
  134 + strokeColor: "rgb(${strokeColor})"
  135 + },
  136 + "Polygon": {
  137 + strokeWidth: "${strokeWidth}",
  138 + strokeOpacity: "${opacidade}",
  139 + strokeColor: "rgb(${strokeColor})",
  140 + fillColor: "rgb(${fillColor})",
  141 + fillOpacity: "${opacidade}",
  142 + zIndex: 5000
  143 + }
144 }, 144 },
145 style = new OpenLayers.Style(), 145 style = new OpenLayers.Style(),
146 styleMap1 = new OpenLayers.StyleMap( 146 styleMap1 = new OpenLayers.StyleMap(
147 - {  
148 - "default": style,  
149 - "vertex": {  
150 - strokeOpacity: 1,  
151 - strokeWidth: 1,  
152 - fillColor: "white",  
153 - fillOpacity: 0.45,  
154 - pointRadius: 4  
155 - }  
156 - },  
157 - {  
158 - extendDefault: false  
159 - } 147 + {
  148 + "default": style,
  149 + "vertex": {
  150 + strokeOpacity: 1,
  151 + strokeWidth: 1,
  152 + fillColor: "white",
  153 + fillOpacity: 0.45,
  154 + pointRadius: 4
  155 + }
  156 + },
  157 + {
  158 + extendDefault: false
  159 + }
160 ), 160 ),
161 renderer = OpenLayers.Util.getParameters(window.location.href).renderer; 161 renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
162 -  
163 - style.addRules([  
164 - new OpenLayers.Rule({symbolizer: sketchSymbolizers})  
165 - ]);  
166 - renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;  
167 - i3GEO.desenho.layergrafico = new OpenLayers.Layer.Vector("Edi&ccedil;&atilde;o",{  
168 - styleMap: styleMap1,  
169 - displayInLayerSwitcher:true,  
170 - visibility:true,  
171 - renderers: renderer,  
172 - vertexRenderIntent: "vertex" 162 +
  163 + style.addRules(
  164 + [new OpenLayers.Rule({symbolizer: sketchSymbolizers})]
  165 + );
  166 + renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
  167 + i3GEO.desenho.layergrafico = new OpenLayers.Layer.Vector(
  168 + "Edi&ccedil;&atilde;o",{
  169 + styleMap: styleMap1,
  170 + displayInLayerSwitcher:true,
  171 + visibility:true,
  172 + renderers: renderer,
  173 + vertexRenderIntent: "vertex"
  174 + }
  175 + );
  176 + //para efeitos de compatibilidade
  177 + if(i3GEO.editorOL.mapa){
  178 + i3GEO.editorOL.mapa.addLayers([i3GEO.desenho.layergrafico]);
  179 + }
  180 + else{
  181 + i3geoOL.addLayers([i3GEO.desenho.layergrafico]);
173 } 182 }
174 - );  
175 - //para efeitos de compatibilidade  
176 - if(i3GEO.editorOL.mapa){  
177 - i3GEO.editorOL.mapa.addLayers([i3GEO.desenho.layergrafico]);  
178 - }  
179 - else{  
180 - i3geoOL.addLayers([i3GEO.desenho.layergrafico]);  
181 } 183 }
182 - }  
183 - },  
184 - /* 184 + },
  185 + /*
185 Cria os elementos 'dom' necess&aacute;rios ao uso das fun&ccedil;&otilde;es de desenho sobre o mapa. 186 Cria os elementos 'dom' necess&aacute;rios ao uso das fun&ccedil;&otilde;es de desenho sobre o mapa.
186 187
187 As ferramentas de c&aacute;lculo de dist&acirc;ncias e &aacute;reas utilizam esse container. 188 As ferramentas de c&aacute;lculo de dist&acirc;ncias e &aacute;reas utilizam esse container.
@@ -195,64 +196,64 @@ i3GEO.desenho = { @@ -195,64 +196,64 @@ i3GEO.desenho = {
195 Essa fun&ccedil;&atilde;o cria tamb&eacute;m o objeto pontosdistobj que &eacute; utilizado para armazenar 196 Essa fun&ccedil;&atilde;o cria tamb&eacute;m o objeto pontosdistobj que &eacute; utilizado para armazenar
196 os dados obtidos da movimenta&ccedil;&atilde;o do mouse sobre o mapa 197 os dados obtidos da movimenta&ccedil;&atilde;o do mouse sobre o mapa
197 198
198 - */  
199 - criaContainerRichdraw: function(){  
200 - if(typeof(console) !== 'undefined'){console.info("i3GEO.desenho.criaContainerRichdraw()");}  
201 - pontosdistobj = {  
202 - xpt: [],  
203 - ypt: [],  
204 - dist: [],  
205 - distV: [],  
206 - xtela: [],  
207 - ytela: [],  
208 - ximg: [],  
209 - yimg: [],  
210 - linhas: []  
211 - };  
212 - if(i3GEO.Interface.ATUAL === "googleearth")  
213 - {return;}  
214 - try{  
215 - var divgeo,renderer;  
216 - divgeo = i3GEO.desenho.criaDivContainer();  
217 - divgeo.innerHTML = "";  
218 - //  
219 - //cria o objeto renderer conforme o browser em uso  
220 - //esse objeto ser&aacute; utilizado nas fun&ccedil;&otilde;es de desenho  
221 - //mais detalhes, veja em pacotes/richdraw  
222 - //Conforme a resposta do navegador, utiliza-se a cria&ccedil;&atilde;o VML ou SVG  
223 - // 199 + */
  200 + criaContainerRichdraw: function(){
  201 + if(typeof(console) !== 'undefined'){console.info("i3GEO.desenho.criaContainerRichdraw()");}
  202 + i3GEO.analise.pontosdistobj = {
  203 + xpt: [],
  204 + ypt: [],
  205 + dist: [],
  206 + distV: [],
  207 + xtela: [],
  208 + ytela: [],
  209 + ximg: [],
  210 + yimg: [],
  211 + linhas: []
  212 + };
  213 + if(i3GEO.Interface.ATUAL === "googleearth")
  214 + {return;}
224 try{ 215 try{
225 - renderer = new VMLRenderer();  
226 - i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer);  
227 - }  
228 - catch(erro){  
229 - renderer = new SVGRenderer();  
230 - i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer);  
231 - renderer.svgRoot.style.width = divgeo.style.width;  
232 - renderer.svgRoot.style.height = divgeo.style.height;  
233 - }  
234 - //  
235 - //defini&ccedil;&atilde;o dos s&iacute;mbolos default para os elementos gr&aacute;ficos  
236 - //  
237 - i3GEO.desenho.definePadrao(i3GEO.desenho.estiloPadrao);  
238 - i3GEO.desenho.richdraw.editCommand('mode', 'line');  
239 - divgeo.style.display="block";  
240 - //  
241 - //ap&oacute;s o container ser criado, &eacute; necess&aacute;rio que as fun&ccedil;&otilde;es  
242 - //de clique sobre o mapa sejam ativadas  
243 - //para funcionarem sobre o container  
244 - //  
245 - i3GEO.eventos.ativa(divgeo);  
246 - if($i("localizarxygeoProjxg")){  
247 - var temp = function(){  
248 - i3GEO.coordenadas.atualizaGeo(objposicaocursor.dmsx,objposicaocursor.dmsy,"localizarxygeoProj");  
249 - };  
250 - YAHOO.util.Event.addListener(divgeo,"mousemove", temp); 216 + var divgeo,renderer;
  217 + divgeo = i3GEO.desenho.criaDivContainer();
  218 + divgeo.innerHTML = "";
  219 + //
  220 + //cria o objeto renderer conforme o browser em uso
  221 + //esse objeto ser&aacute; utilizado nas fun&ccedil;&otilde;es de desenho
  222 + //mais detalhes, veja em pacotes/richdraw
  223 + //Conforme a resposta do navegador, utiliza-se a cria&ccedil;&atilde;o VML ou SVG
  224 + //
  225 + try{
  226 + renderer = new VMLRenderer();
  227 + i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer);
  228 + }
  229 + catch(erro){
  230 + renderer = new SVGRenderer();
  231 + i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer);
  232 + renderer.svgRoot.style.width = divgeo.style.width;
  233 + renderer.svgRoot.style.height = divgeo.style.height;
  234 + }
  235 + //
  236 + //defini&ccedil;&atilde;o dos s&iacute;mbolos default para os elementos gr&aacute;ficos
  237 + //
  238 + i3GEO.desenho.definePadrao(i3GEO.desenho.estiloPadrao);
  239 + i3GEO.desenho.richdraw.editCommand('mode', 'line');
  240 + divgeo.style.display="block";
  241 + //
  242 + //ap&oacute;s o container ser criado, &eacute; necess&aacute;rio que as fun&ccedil;&otilde;es
  243 + //de clique sobre o mapa sejam ativadas
  244 + //para funcionarem sobre o container
  245 + //
  246 + i3GEO.eventos.ativa(divgeo);
  247 + if($i("localizarxygeoProjxg")){
  248 + var temp = function(){
  249 + i3GEO.coordenadas.atualizaGeo(objposicaocursor.dmsx,objposicaocursor.dmsy,"localizarxygeoProj");
  250 + };
  251 + YAHOO.util.Event.addListener(divgeo,"mousemove", temp);
  252 + }
251 } 253 }
252 - }  
253 - catch(men){alert("Erro ao tentar criar container richdraw "+men);}  
254 - },  
255 - /* 254 + catch(men){alert("Erro ao tentar criar container richdraw "+men);}
  255 + },
  256 + /*
256 Cria o elemento DIV que ser&aacute; utilizado para renderizar os elementos gr&aacute;ficos. 257 Cria o elemento DIV que ser&aacute; utilizado para renderizar os elementos gr&aacute;ficos.
257 Nesse DIV ser&atilde;o inclu&iacute;dos os elementos de desenho em SVG ou VML 258 Nesse DIV ser&atilde;o inclu&iacute;dos os elementos de desenho em SVG ou VML
258 259
@@ -261,39 +262,39 @@ i3GEO.desenho = { @@ -261,39 +262,39 @@ i3GEO.desenho = {
261 Return: 262 Return:
262 263
263 DOM object 264 DOM object
264 - */  
265 - criaDivContainer: function(){  
266 - desenhoUltimaLinha = "";  
267 - desenhoUltimaLinhaPol = "";  
268 - if (!$i("divGeometriasTemp")){  
269 - var pos,novoel,ne;  
270 - //  
271 - //pega a posi&ccedil;&atilde;o da imagem do mapa para posicionar corretamente o container  
272 - //  
273 - pos = [0,0];  
274 - pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO));  
275 - //  
276 - //cria o container  
277 - //  
278 - novoel = document.createElement("div");  
279 - novoel.id = "divGeometriasTemp";  
280 - ne = novoel.style;  
281 - ne.cursor="crosshair";  
282 - ne.zIndex=0;  
283 - if(i3GEO.Interface.TABLET === true)  
284 - {ne.zIndex=5000;}  
285 - ne.position="absolute";  
286 - ne.width=i3GEO.parametros.w + "px";  
287 - ne.height=i3GEO.parametros.h + "px";  
288 - ne.border="0px solid black";  
289 - ne.display="none";  
290 - ne.top=pos[1] + "px";  
291 - ne.left=pos[0] + "px";  
292 - document.body.appendChild(novoel);  
293 - }  
294 - return ($i("divGeometriasTemp"));  
295 - },  
296 - /* 265 + */
  266 + criaDivContainer: function(){
  267 + desenhoUltimaLinha = "";
  268 + desenhoUltimaLinhaPol = "";
  269 + if (!$i("divGeometriasTemp")){
  270 + var pos,novoel,ne;
  271 + //
  272 + //pega a posi&ccedil;&atilde;o da imagem do mapa para posicionar corretamente o container
  273 + //
  274 + pos = [0,0];
  275 + pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO));
  276 + //
  277 + //cria o container
  278 + //
  279 + novoel = document.createElement("div");
  280 + novoel.id = "divGeometriasTemp";
  281 + ne = novoel.style;
  282 + ne.cursor="crosshair";
  283 + ne.zIndex=0;
  284 + if(i3GEO.Interface.TABLET === true)
  285 + {ne.zIndex=5000;}
  286 + ne.position="absolute";
  287 + ne.width=i3GEO.parametros.w + "px";
  288 + ne.height=i3GEO.parametros.h + "px";
  289 + ne.border="0px solid black";
  290 + ne.display="none";
  291 + ne.top=pos[1] + "px";
  292 + ne.left=pos[0] + "px";
  293 + document.body.appendChild(novoel);
  294 + }
  295 + return ($i("divGeometriasTemp"));
  296 + },
  297 + /*
297 Desenha ou reposiciona elementos na tela usando a biblioteca richdraw 298 Desenha ou reposiciona elementos na tela usando a biblioteca richdraw
298 299
299 Parametros: 300 Parametros:
@@ -305,45 +306,46 @@ i3GEO.desenho = { @@ -305,45 +306,46 @@ i3GEO.desenho = {
305 n {numeric} - &iacute;ndice do elemento no array pontosdistobj 306 n {numeric} - &iacute;ndice do elemento no array pontosdistobj
306 307
307 texto {string} - texto que ser&aacute; inserido no tipo "insereTexto" 308 texto {string} - texto que ser&aacute; inserido no tipo "insereTexto"
308 - */  
309 - aplica: function(tipo,objeto,n,texto){  
310 - var dy,dx,w,c;  
311 - if(i3GEO.desenho.richdraw && $i(i3GEO.Interface.IDCORPO)){  
312 - //pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO));  
313 - //  
314 - //faz o reposicionamento de linhas quando o mouse &eacute; movido e a linha est&aacute; ativa  
315 - //  
316 - if((tipo==="resizeLinha") || (tipo==="resizePoligono")){  
317 - try  
318 - {i3GEO.desenho.richdraw.renderer.resize(objeto,0,0,objposicaocursor.imgx,objposicaocursor.imgy);}  
319 - catch(erro){  
320 - if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+erro);}  
321 - }  
322 - }  
323 - if(tipo==="insereCirculo"){  
324 - dx = Math.pow(((pontosdistobj.xtela[n])*1) - ((pontosdistobj.xtela[n-1])*1),2);  
325 - dy = Math.pow(((pontosdistobj.ytela[n])*1) - ((pontosdistobj.ytela[n-1])*1),2);  
326 - w = Math.sqrt(dx + dy);  
327 - c = "";  
328 - if(navn){  
329 - c = 'rgba(255,255,255,0'; 309 + */
  310 + aplica: function(tipo,objeto,n,texto){
  311 + var dy,dx,w,c,
  312 + pontosdistobj = i3GEO.analise.pontosdistobj;
  313 + if(i3GEO.desenho.richdraw && $i(i3GEO.Interface.IDCORPO)){
  314 + //pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO));
  315 + //
  316 + //faz o reposicionamento de linhas quando o mouse &eacute; movido e a linha est&aacute; ativa
  317 + //
  318 + if((tipo==="resizeLinha") || (tipo==="resizePoligono")){
  319 + try
  320 + {i3GEO.desenho.richdraw.renderer.resize(objeto,0,0,objposicaocursor.imgx,objposicaocursor.imgy);}
  321 + catch(erro){
  322 + if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+erro);}
  323 + }
330 } 324 }
331 - if(chro){ 325 + if(tipo==="insereCirculo"){
  326 + dx = Math.pow(((pontosdistobj.xtela[n])*1) - ((pontosdistobj.xtela[n-1])*1),2);
  327 + dy = Math.pow(((pontosdistobj.ytela[n])*1) - ((pontosdistobj.ytela[n-1])*1),2);
  328 + w = Math.sqrt(dx + dy);
332 c = ""; 329 c = "";
  330 + if(navn){
  331 + c = 'rgba(255,255,255,0';
  332 + }
  333 + if(chro){
  334 + c = "";
  335 + }
  336 + i3GEO.desenho.insereCirculo(pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],w,c);
333 } 337 }
334 - i3GEO.desenho.insereCirculo(pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],w,c);  
335 - }  
336 - if(tipo==="insereTexto"){  
337 - try{  
338 - i3GEO.desenho.richdraw.renderer.create('text', '', i3GEO.desenho.richdraw.textColor, 1, pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],"","",texto);  
339 - }  
340 - catch(men){  
341 - if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+men);} 338 + if(tipo==="insereTexto"){
  339 + try{
  340 + i3GEO.desenho.richdraw.renderer.create('text', '', i3GEO.desenho.richdraw.textColor, 1, pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],"","",texto);
  341 + }
  342 + catch(men){
  343 + if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+men);}
  344 + }
342 } 345 }
343 } 346 }
344 - }  
345 - },  
346 - /* 347 + },
  348 + /*
347 Insere um circulo no container de elementos gr&aacute;ficos 349 Insere um circulo no container de elementos gr&aacute;ficos
348 350
349 Parametros: 351 Parametros:
@@ -353,53 +355,53 @@ i3GEO.desenho = { @@ -353,53 +355,53 @@ i3GEO.desenho = {
353 y {numerico} - posi&ccedil;&atilde;o do ponto em coordenadas de imagem 355 y {numerico} - posi&ccedil;&atilde;o do ponto em coordenadas de imagem
354 356
355 w {numerico} - raio do c&iacute;rculo em pixels 357 w {numerico} - raio do c&iacute;rculo em pixels
356 - 358 +
357 b {string} - cor do fundo 359 b {string} - cor do fundo
358 - */  
359 - insereCirculo: function(x,y,w,b){  
360 - if(!b){  
361 - b = "";  
362 - }  
363 - try{  
364 - i3GEO.desenho.richdraw.renderer.create('circ', b, i3GEO.desenho.richdraw.circColor, i3GEO.desenho.richdraw.lineWidth, x,y,w,w);  
365 - }  
366 - catch(men){  
367 - if(typeof(console) !== 'undefined'){console.error(men);}  
368 - }  
369 - },  
370 - /* 360 + */
  361 + insereCirculo: function(x,y,w,b){
  362 + if(!b){
  363 + b = "";
  364 + }
  365 + try{
  366 + i3GEO.desenho.richdraw.renderer.create('circ', b, i3GEO.desenho.richdraw.circColor, i3GEO.desenho.richdraw.lineWidth, x,y,w,w);
  367 + }
  368 + catch(men){
  369 + if(typeof(console) !== 'undefined'){console.error(men);}
  370 + }
  371 + },
  372 + /*
371 Aplica um determinado padrao de estilos para os novos elementos que ser&atilde;o adicionados 373 Aplica um determinado padrao de estilos para os novos elementos que ser&atilde;o adicionados
372 374
373 Parametro: 375 Parametro:
374 376
375 padrao {string} - nome do estilo 377 padrao {string} - nome do estilo
376 - */  
377 - definePadrao: function(padrao){  
378 - padrao = i3GEO.desenho.estilos[padrao];  
379 - i3GEO.desenho.richdraw.editCommand('fillcolor', padrao.fillcolor);  
380 - i3GEO.desenho.richdraw.editCommand('linecolor', padrao.linecolor);  
381 - i3GEO.desenho.richdraw.editCommand('linewidth', padrao.linewidth);  
382 - i3GEO.desenho.richdraw.editCommand('circcolor', padrao.circcolor);  
383 - i3GEO.desenho.richdraw.editCommand('textcolor', padrao.textcolor);  
384 - },  
385 - /* 378 + */
  379 + definePadrao: function(padrao){
  380 + padrao = i3GEO.desenho.estilos[padrao];
  381 + i3GEO.desenho.richdraw.editCommand('fillcolor', padrao.fillcolor);
  382 + i3GEO.desenho.richdraw.editCommand('linecolor', padrao.linecolor);
  383 + i3GEO.desenho.richdraw.editCommand('linewidth', padrao.linewidth);
  384 + i3GEO.desenho.richdraw.editCommand('circcolor', padrao.circcolor);
  385 + i3GEO.desenho.richdraw.editCommand('textcolor', padrao.textcolor);
  386 + },
  387 + /*
386 Cria uma caixa de sele&ccedil;&atilde;o para escolha do estilo a ser utilizado 388 Cria uma caixa de sele&ccedil;&atilde;o para escolha do estilo a ser utilizado
387 - */  
388 - caixaEstilos: function(){  
389 - var lista = i3GEO.util.listaChaves(i3GEO.desenho.estilos), 389 + */
  390 + caixaEstilos: function(){
  391 + var lista = i3GEO.util.listaChaves(i3GEO.desenho.estilos),
390 n = lista.length, 392 n = lista.length,
391 i, 393 i,
392 caixa, 394 caixa,
393 sel; 395 sel;
394 - caixa = "<select onchange='i3GEO.desenho.definePadrao(this.value)'>";  
395 - for(i=0;i<n;i+=1){  
396 - sel = "";  
397 - if(lista[i] === i3GEO.desenho.estiloPadrao)  
398 - {sel = "select";}  
399 - caixa += "<option value='"+lista[i]+"'" + sel + ">"+lista[i]+"</option>"; 396 + caixa = "<select onchange='i3GEO.desenho.definePadrao(this.value)'>";
  397 + for(i=0;i<n;i+=1){
  398 + sel = "";
  399 + if(lista[i] === i3GEO.desenho.estiloPadrao)
  400 + {sel = "select";}
  401 + caixa += "<option value='"+lista[i]+"'" + sel + ">"+lista[i]+"</option>";
  402 + }
  403 + caixa += "</select>";
  404 + return caixa;
400 } 405 }
401 - caixa += "</select>";  
402 - return caixa;  
403 - }  
404 }; 406 };
405 -//YAHOO.log("carregou classe desenho", "Classes i3geo");  
406 \ No newline at end of file 407 \ No newline at end of file
  408 +//YAHOO.log("carregou classe desenho", "Classes i3geo");