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,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' > </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 | 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"> 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 | 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" >Á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 | 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} - área de cada pixel no mapa | 273 | pixel {Numeric} - á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&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica G | @@ -40,148 +40,149 @@ Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica G | ||
40 | GNU junto com este programa; se não, escreva para a | 40 | GNU junto com este programa; se não, escreva para a |
41 | Free Software Foundation, Inc., no endereço | 41 | Free Software Foundation, Inc., no endereç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ão | 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 | 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çã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 | Cria os elementos 'dom' necessários ao uso das funções de desenho sobre o mapa. | 186 | Cria os elementos 'dom' necessários ao uso das funções de desenho sobre o mapa. |
186 | 187 | ||
187 | As ferramentas de cálculo de distâncias e áreas utilizam esse container. | 188 | As ferramentas de cálculo de distâncias e áreas utilizam esse container. |
@@ -195,64 +196,64 @@ i3GEO.desenho = { | @@ -195,64 +196,64 @@ i3GEO.desenho = { | ||
195 | Essa função cria também o objeto pontosdistobj que é utilizado para armazenar | 196 | Essa função cria também o objeto pontosdistobj que é utilizado para armazenar |
196 | os dados obtidos da movimentação do mouse sobre o mapa | 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 | 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çã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 | Cria o elemento DIV que será utilizado para renderizar os elementos gráficos. | 257 | Cria o elemento DIV que será utilizado para renderizar os elementos gráficos. |
257 | Nesse DIV serão incluídos os elementos de desenho em SVG ou VML | 258 | Nesse DIV serão incluí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çã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 | 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} - índice do elemento no array pontosdistobj | 306 | n {numeric} - índice do elemento no array pontosdistobj |
306 | 307 | ||
307 | texto {string} - texto que será inserido no tipo "insereTexto" | 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 | 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áficos | 349 | Insere um circulo no container de elementos gráficos |
348 | 350 | ||
349 | Parametros: | 351 | Parametros: |
@@ -353,53 +355,53 @@ i3GEO.desenho = { | @@ -353,53 +355,53 @@ i3GEO.desenho = { | ||
353 | y {numerico} - posição do ponto em coordenadas de imagem | 355 | y {numerico} - posição do ponto em coordenadas de imagem |
354 | 356 | ||
355 | w {numerico} - raio do círculo em pixels | 357 | w {numerico} - raio do cí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ão adicionados | 373 | Aplica um determinado padrao de estilos para os novos elementos que serã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ção para escolha do estilo a ser utilizado | 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 | 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"); |