Commit cff3c9895894403345199291b860003958eb41b3
1 parent
006cbbbf
Exists in
master
and in
7 other branches
correção de sintaxe javascript
Showing
3 changed files
with
828 additions
and
769 deletions
Show diff stats
classesjs/classe_analise.js
... | ... | @@ -32,12 +32,14 @@ Você deve ter recebido uma cópia da Licença Pública G |
32 | 32 | GNU junto com este programa; se não, escreva para a |
33 | 33 | Free Software Foundation, Inc., no endereço |
34 | 34 | 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. |
35 | -*/ | |
35 | + */ | |
36 | 36 | if(typeof(i3GEO) === 'undefined'){ |
37 | 37 | var i3GEO = {}; |
38 | 38 | } |
39 | 39 | i3GEO.analise = { |
40 | - /* | |
40 | + //armazena os pontos coletados nas funcoes de medicao de area e distancia | |
41 | + pontosdistobj: {}, | |
42 | + /* | |
41 | 43 | Classe: i3GEO.analise.dialogo |
42 | 44 | |
43 | 45 | Abre as telas de dialogo das opcoes de analise |
... | ... | @@ -47,181 +49,181 @@ i3GEO.analise = { |
47 | 49 | Para abrir a mensagem de dialogo de geracao de buffer, utilize |
48 | 50 | |
49 | 51 | i3GEO.analise.dialogo.buffer() |
50 | - */ | |
51 | - dialogo:{ | |
52 | - /* | |
52 | + */ | |
53 | + dialogo:{ | |
54 | + /* | |
53 | 55 | Function: saiku |
54 | 56 | |
55 | 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 | 63 | Function: graficoInterativo |
62 | 64 | |
63 | 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 | 71 | Function: graficoInterativo1 |
70 | 72 | |
71 | 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 | 79 | Function: linhaDoTempo |
78 | 80 | |
79 | 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' > </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' > </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 | 114 | Function: perfil |
113 | 115 | |
114 | 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 | 122 | Function: gradePontos |
121 | 123 | |
122 | 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 | 130 | Function: gradePol |
129 | 131 | |
130 | 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 | 138 | Function: gradeHex |
137 | 139 | |
138 | 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 | 146 | Function: analisaGeometrias |
145 | 147 | |
146 | 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 | 154 | Function: pontosdistri |
153 | 155 | |
154 | 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 | 162 | Function: pontoempoligono |
161 | 163 | |
162 | 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 | 170 | Function: centromassa |
169 | 171 | |
170 | 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 | 178 | Function: nptPol |
177 | 179 | |
178 | 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 | 186 | Function: buffer |
185 | 187 | |
186 | 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 | 194 | Function: distanciaptpt |
193 | 195 | |
194 | 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 | 202 | Function: centroide |
201 | 203 | |
202 | 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 | 210 | Function: dissolve |
209 | 211 | |
210 | 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 | 218 | Function: agrupaElementos |
217 | 219 | |
218 | 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 | 227 | Classe: i3GEO.analise.medeDistancia |
226 | 228 | |
227 | 229 | Ativa e controla a opcao de medicao de distancias. |
... | ... | @@ -231,243 +233,293 @@ i3GEO.analise = { |
231 | 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 | 235 | Para mostrar o resultado do calculo, e incluido um div especifico. |
234 | - */ | |
235 | - medeDistancia:{ | |
236 | - /* | |
236 | + */ | |
237 | + medeDistancia:{ | |
238 | + /* | |
237 | 239 | Function: inicia |
238 | 240 | |
239 | 241 | Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessorios |
240 | 242 | |
241 | 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 | 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"> Distância aproximada <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'/ajuda_usuario.php?idcategoria=6&idajuda=50" > </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> </td>' + | |
296 | - '<td>' + | |
297 | - '<input style="cursor:pointer" type="checkbox" id="parartextos" checked />' + | |
298 | - '</td><td>Textos<td>' + | |
299 | - '<td> Estilo:</td><td>'+i3GEO.desenho.caixaEstilos()+'</td>' + | |
300 | - '<td> <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"> Distância aproximada <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'/ajuda_usuario.php?idcategoria=6&idajuda=50" > </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> </td>' + | |
277 | + '<td>' + | |
278 | + '<input style="cursor:pointer" type="checkbox" id="parartextos" checked />' + | |
279 | + '</td><td>Textos<td>' + | |
280 | + '<td> Estilo:</td><td>'+i3GEO.desenho.caixaEstilos()+'</td>' + | |
281 | + '<td> <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 | 313 | Function: fechaJanela |
336 | 314 | |
337 | 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 | 435 | d = d + ""; |
445 | 436 | d = d.split("."); |
446 | 437 | decimal = d[1].substr(0,5); |
447 | 438 | d = d[0]+"."+decimal; |
448 | 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 | 523 | Classe: i3GEO.analise.medeArea |
472 | 524 | |
473 | 525 | Ativa e controla a opcao de medicao de area. |
... | ... | @@ -477,32 +529,32 @@ i3GEO.analise = { |
477 | 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 | 531 | Para mostrar o resultado do calculo, e incluido um div especifico. |
480 | - */ | |
481 | - medeArea:{ | |
482 | - /* | |
532 | + */ | |
533 | + medeArea:{ | |
534 | + /* | |
483 | 535 | Function: inicia |
484 | 536 | |
485 | 537 | Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessarios |
486 | 538 | |
487 | 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 | 558 | montacontainer = function(){ |
507 | 559 | var desenho = i3GEO.desenho; |
508 | 560 | $i("mostraarea_calculo").innerHTML = "Clique no mapa para desenhar o poligono. Clique duas vezes para concluir"; |
... | ... | @@ -512,149 +564,150 @@ i3GEO.analise = { |
512 | 564 | desenho.richdraw.lineColor = "green"; |
513 | 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 | 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" >Área aproximada <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'"/ajuda_usuario.php?idcategoria=6&idajuda=51" > </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" >Área aproximada <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'"/ajuda_usuario.php?idcategoria=6&idajuda=51" > </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 | 622 | Function: fechaJanela |
571 | 623 | |
572 | 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 | 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 | 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 | 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 | 713 | //YAHOO.log("carregou classe analise", "Classes i3geo"); |
661 | 714 | \ No newline at end of file | ... | ... |
classesjs/classe_calculo.js
... | ... | @@ -266,7 +266,9 @@ i3GEO.calculo = { |
266 | 266 | |
267 | 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 | 273 | pixel {Numeric} - área de cada pixel no mapa |
272 | 274 | |
... | ... | @@ -275,21 +277,23 @@ i3GEO.calculo = { |
275 | 277 | Type: |
276 | 278 | {Numeric} |
277 | 279 | */ |
278 | - area: function(pontos,pixel){ | |
280 | + area: function(x,y,pixel){ | |
279 | 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 | 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 | 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 | 292 | $polygon_area = Math.abs($polygon_area) / 2; |
290 | 293 | } |
291 | - else | |
292 | - {$polygon_area = 0;} | |
294 | + else{ | |
295 | + $polygon_area = 0; | |
296 | + } | |
293 | 297 | return $polygon_area*pixel; |
294 | 298 | } |
295 | 299 | catch(e){return (0);} | ... | ... |
classesjs/classe_desenho.js
... | ... | @@ -40,148 +40,149 @@ Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica G |
40 | 40 | GNU junto com este programa; se não, escreva para a |
41 | 41 | Free Software Foundation, Inc., no endereço |
42 | 42 | 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. |
43 | -*/ | |
43 | + */ | |
44 | 44 | if(typeof(i3GEO) === 'undefined'){ |
45 | 45 | var i3GEO = {}; |
46 | 46 | } |
47 | 47 | i3GEO.desenho = { |
48 | - /* | |
48 | + /* | |
49 | 49 | Variavel: richdraw |
50 | 50 | |
51 | 51 | Objeto richdraw criado por criaContainerRichdraw |
52 | 52 | |
53 | 53 | Tipo: |
54 | 54 | {richdraw object} |
55 | - */ | |
56 | - richdraw: "", | |
57 | - /* | |
55 | + */ | |
56 | + richdraw: "", | |
57 | + /* | |
58 | 58 | Propriedade: estilos |
59 | 59 | |
60 | 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 | 93 | Propriedade: estiloPadrao |
94 | 94 | |
95 | 95 | Estilo utilizado como padrão |
96 | - */ | |
97 | - estiloPadrao: "normal", | |
98 | - /* | |
99 | - Funçõ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çõ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 | 145 | style = new OpenLayers.Style(), |
146 | 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 | 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çã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çã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 | 186 | Cria os elementos 'dom' necessários ao uso das funções de desenho sobre o mapa. |
186 | 187 | |
187 | 188 | As ferramentas de cálculo de distâncias e áreas utilizam esse container. |
... | ... | @@ -195,64 +196,64 @@ i3GEO.desenho = { |
195 | 196 | Essa função cria também o objeto pontosdistobj que é utilizado para armazenar |
196 | 197 | os dados obtidos da movimentaçã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á utilizado nas funções de desenho | |
221 | - //mais detalhes, veja em pacotes/richdraw | |
222 | - //Conforme a resposta do navegador, utiliza-se a criaçã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 | 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ção dos símbolos default para os elementos gráficos | |
236 | - // | |
237 | - i3GEO.desenho.definePadrao(i3GEO.desenho.estiloPadrao); | |
238 | - i3GEO.desenho.richdraw.editCommand('mode', 'line'); | |
239 | - divgeo.style.display="block"; | |
240 | - // | |
241 | - //após o container ser criado, é necessário que as funçõ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á utilizado nas funções de desenho | |
222 | + //mais detalhes, veja em pacotes/richdraw | |
223 | + //Conforme a resposta do navegador, utiliza-se a criaçã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ção dos símbolos default para os elementos gráficos | |
237 | + // | |
238 | + i3GEO.desenho.definePadrao(i3GEO.desenho.estiloPadrao); | |
239 | + i3GEO.desenho.richdraw.editCommand('mode', 'line'); | |
240 | + divgeo.style.display="block"; | |
241 | + // | |
242 | + //após o container ser criado, é necessário que as funçõ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 | 257 | Cria o elemento DIV que será utilizado para renderizar os elementos gráficos. |
257 | 258 | Nesse DIV serão incluídos os elementos de desenho em SVG ou VML |
258 | 259 | |
... | ... | @@ -261,39 +262,39 @@ i3GEO.desenho = { |
261 | 262 | Return: |
262 | 263 | |
263 | 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çã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çã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 | 298 | Desenha ou reposiciona elementos na tela usando a biblioteca richdraw |
298 | 299 | |
299 | 300 | Parametros: |
... | ... | @@ -305,45 +306,46 @@ i3GEO.desenho = { |
305 | 306 | n {numeric} - índice do elemento no array pontosdistobj |
306 | 307 | |
307 | 308 | texto {string} - texto que será 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 é movido e a linha está 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 é movido e a linha está 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 | 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 | 349 | Insere um circulo no container de elementos gráficos |
348 | 350 | |
349 | 351 | Parametros: |
... | ... | @@ -353,53 +355,53 @@ i3GEO.desenho = { |
353 | 355 | y {numerico} - posição do ponto em coordenadas de imagem |
354 | 356 | |
355 | 357 | w {numerico} - raio do círculo em pixels |
356 | - | |
358 | + | |
357 | 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 | 373 | Aplica um determinado padrao de estilos para os novos elementos que serão adicionados |
372 | 374 | |
373 | 375 | Parametro: |
374 | 376 | |
375 | 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 | 388 | Cria uma caixa de seleçã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 | 392 | n = lista.length, |
391 | 393 | i, |
392 | 394 | caixa, |
393 | 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 | 407 | \ No newline at end of file |
408 | +//YAHOO.log("carregou classe desenho", "Classes i3geo"); | ... | ... |