Commit 6789cb55308ba5c5ef8ff876e09fa6bc9364c2aa
1 parent
e8a0b621
Exists in
master
and in
7 other branches
Correção na identação e documentação do código
Showing
2 changed files
with
2021 additions
and
1473 deletions
Show diff stats
classesjs/classe_ajuda.js
1 | -/* | ||
2 | -Title: Ajuda | ||
3 | - | ||
4 | -i3GEO.ajuda | ||
5 | - | ||
6 | -Manipulação das mensagens de ajuda. | ||
7 | - | ||
8 | -Permite definir a mensagem padrão da janela de mensagens. Abrir a janela e definir seu conteúdo. | ||
9 | -Controla também o letreiro móvel que mostra mensagens especiais definidas em cada layer adicionado ao mapa. | ||
10 | - | ||
11 | -Exemplos: | ||
12 | - | ||
13 | - Se vc não quiser que a janela de ajuda seja aberta, inclua em seu HTML ou javascript | ||
14 | - | ||
15 | - i3GEO.ajuda.ATIVAJANELA = false; | ||
16 | - | ||
17 | - Para enviar uma mensagem para a janela, utilize | ||
18 | - | ||
19 | - i3GEO.ajuda.mostraJanela("texto"); | ||
20 | - | ||
21 | - | ||
22 | -Arquivo: | ||
23 | - | ||
24 | -i3geo/classesjs/classe_ajuda.js | ||
25 | - | ||
26 | -Licença: | ||
27 | - | ||
28 | -GPL2 | ||
29 | - | ||
30 | -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
31 | - | ||
32 | -Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
33 | -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
34 | - | ||
35 | -Este programa é software livre; você pode redistribuí-lo | ||
36 | -e/ou modificá-lo sob os termos da Licença Pública Geral | ||
37 | -GNU conforme publicada pela Free Software Foundation; | ||
38 | - | ||
39 | -Este programa é distribuído na expectativa de que seja útil, | ||
40 | -porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
41 | -de COMERCIABILIDADE OU ADEQUACÃO A UMA FINALIDADE ESPECÍFICA. | ||
42 | -Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
43 | -Você deve ter recebido uma cópia da Licença Pública Geral do | ||
44 | -GNU junto com este programa; se não, escreva para a | ||
45 | -Free Software Foundation, Inc., no endereço | ||
46 | -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
47 | -*/ | ||
48 | -if(typeof(i3GEO) === 'undefined'){ | 1 | +/** |
2 | + * Title: Ajuda | ||
3 | + * | ||
4 | + * i3GEO.ajuda | ||
5 | + * | ||
6 | + * Manipulação das mensagens de ajuda. | ||
7 | + * | ||
8 | + * Permite definir a mensagem padrão da janela de mensagens. Abrir a | ||
9 | + * janela e definir seu conteúdo. Controla também o letreiro | ||
10 | + * móvel que mostra mensagens especiais definidas em cada layer | ||
11 | + * adicionado ao mapa. | ||
12 | + * | ||
13 | + * Exemplos: | ||
14 | + * | ||
15 | + * Se vc não quiser que a janela de ajuda seja aberta, inclua em seu HTML | ||
16 | + * ou javascript | ||
17 | + * | ||
18 | + * i3GEO.ajuda.ATIVAJANELA = false; | ||
19 | + * | ||
20 | + * Para enviar uma mensagem para a janela (quando estiver aberta), utilize | ||
21 | + * | ||
22 | + * i3GEO.ajuda.mostraJanela("texto"); | ||
23 | + * | ||
24 | + * Para enviar uma mensagem temporária utilize: | ||
25 | + * | ||
26 | + * | ||
27 | + * Arquivo: | ||
28 | + * | ||
29 | + * i3geo/classesjs/classe_ajuda.js | ||
30 | + * | ||
31 | + * Licença: | ||
32 | + * | ||
33 | + * GPL2 | ||
34 | + * | ||
35 | + * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
36 | + * | ||
37 | + * Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente | ||
38 | + * Brasil Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
39 | + * | ||
40 | + * Este programa é software livre; você pode redistribuí-lo | ||
41 | + * e/ou modificá-lo sob os termos da Licença Pública Geral | ||
42 | + * GNU conforme publicada pela Free Software Foundation; | ||
43 | + * | ||
44 | + * Este programa é distribuído na expectativa de que seja | ||
45 | + * útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia | ||
46 | + * implícita de COMERCIABILIDADE OU ADEQUACÃO A UMA FINALIDADE | ||
47 | + * ESPECÍFICA. Consulte a Licença Pública Geral do GNU para | ||
48 | + * mais detalhes. Você deve ter recebido uma cópia da | ||
49 | + * Licença Pública Geral do GNU junto com este programa; se | ||
50 | + * não, escreva para a Free Software Foundation, Inc., no endereço | ||
51 | + * 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
52 | + */ | ||
53 | +if (typeof (i3GEO) === 'undefined') { | ||
49 | var i3GEO = {}; | 54 | var i3GEO = {}; |
50 | } | 55 | } |
51 | i3GEO.ajuda = { | 56 | i3GEO.ajuda = { |
52 | - /* | ||
53 | - Propriedade: ATIVAJANELA | ||
54 | - | ||
55 | - Define se a janela de mensagens pode ou não ser aberta. | ||
56 | - | ||
57 | - Default: | ||
58 | - | ||
59 | - {true} | ||
60 | - | ||
61 | - Tipo: | ||
62 | - {Boolean} | ||
63 | - */ | ||
64 | - ATIVAJANELA: true, | ||
65 | - /* | ||
66 | - Propriedade: DIVAJUDA | ||
67 | - | ||
68 | - Nome do elemento HTML, do tipo DIV, que irá conter os textos de ajuda. | ||
69 | - | ||
70 | - Se esse DIV for encontrado no mapa, os textos serão mostrados em seu interior. | ||
71 | - | ||
72 | - Default: | ||
73 | - | ||
74 | - {"i3geo_ajuda"} | ||
75 | - | ||
76 | - Tipo: | ||
77 | - {String} | ||
78 | - */ | ||
79 | - DIVAJUDA: "i3geo_ajuda", | ||
80 | - /* | ||
81 | - Propriedade: DIVLETREIRO | ||
82 | - | ||
83 | - Id do elemento HTML onde será incluído o banner (letreiro) de mensagens. | ||
84 | - | ||
85 | - Esse tipo de mensagem é obtida do METADATA "MENSAGEM" que pode ser incluído em um layer. | ||
86 | - | ||
87 | - Default: | ||
88 | - | ||
89 | - {"i3geo_letreiro"} | ||
90 | - | ||
91 | - Tipo: | ||
92 | - {String} | ||
93 | - */ | ||
94 | - DIVLETREIRO: "i3geo_letreiro", | ||
95 | - /* | ||
96 | - Propriedade: MENSAGEMPADRAO | ||
97 | - | ||
98 | - Mensagem que será incluída ao iniciar a janela de mensagens ou quando não houver | ||
99 | - mensagem definida para o elemento sobre o qual o mouse estaciona. | ||
100 | - | ||
101 | - Default: | ||
102 | - {$trad("p1")} | ||
103 | - | ||
104 | - Tipo: | ||
105 | - {String} | ||
106 | - */ | ||
107 | - MENSAGEMPADRAO: $trad("p1"), | ||
108 | - /* | ||
109 | - Propriedade: TRANSICAOSUAVE | ||
110 | - | ||
111 | - Altera a transparência quando o mouse sobrepõe � janela e quando sai | ||
112 | - | ||
113 | - Tipo: | ||
114 | - {boolean} | ||
115 | - | ||
116 | - Default: | ||
117 | - {true} | ||
118 | - */ | ||
119 | - TRANSICAOSUAVE: true, | ||
120 | - /* | ||
121 | - Propriedade: OPACIDADE | ||
122 | - | ||
123 | - Valor da opacidade mínima utilizada quando TRANSICAOSUAVE for igual a true. | ||
124 | - | ||
125 | - Varia de 0 a 100 | ||
126 | - | ||
127 | - Tipo: | ||
128 | - {numeric} | ||
129 | - | ||
130 | - Default: | ||
131 | - {20} | ||
132 | - */ | ||
133 | - OPACIDADE: 20, | ||
134 | - /* | ||
135 | - Function: abreDoc | ||
136 | - | ||
137 | - Abre a documentacao do i3geo em uma nova janela do navegador | ||
138 | - | ||
139 | - Parametro: | ||
140 | - | ||
141 | - url - url que será adicionada a i3GEO.configura.locaplic | ||
142 | - */ | ||
143 | - abreDoc: function(url){ | ||
144 | - if(!url) | ||
145 | - {url = "/documentacao/index.html";} | ||
146 | - window.open(i3GEO.configura.locaplic+url); | 57 | + /** |
58 | + * Propriedade: ATIVAJANELA | ||
59 | + * | ||
60 | + * Define se a janela de mensagens pode ou não ser aberta. | ||
61 | + * | ||
62 | + * Tipo {Boolean} - true | ||
63 | + */ | ||
64 | + ATIVAJANELA : true, | ||
65 | + /** | ||
66 | + * Propriedade: DIVAJUDA | ||
67 | + * | ||
68 | + * Nome do elemento HTML, do tipo DIV, que irá conter os textos de | ||
69 | + * ajuda. | ||
70 | + * | ||
71 | + * Se esse DIV for encontrado no mapa, os textos serão mostrados em | ||
72 | + * seu interior. | ||
73 | + * | ||
74 | + * Tipo {String} - i3geo_ajuda | ||
75 | + */ | ||
76 | + DIVAJUDA : "i3geo_ajuda", | ||
77 | + /** | ||
78 | + * Propriedade: DIVLETREIRO | ||
79 | + * | ||
80 | + * Id do elemento HTML onde será incluído o banner (letreiro) | ||
81 | + * de mensagens. | ||
82 | + * | ||
83 | + * Esse tipo de mensagem é obtida do METADATA "MENSAGEM" que pode ser | ||
84 | + * incluído em um layer. | ||
85 | + * | ||
86 | + * Tipo {String} - i3geo_letreir | ||
87 | + */ | ||
88 | + DIVLETREIRO : "i3geo_letreiro", | ||
89 | + /** | ||
90 | + * Propriedade: MENSAGEMPADRAO | ||
91 | + * | ||
92 | + * Mensagem que será incluída ao iniciar a janela de mensagens | ||
93 | + * ou quando não houver mensagem definida para o elemento sobre o | ||
94 | + * qual o mouse estaciona. | ||
95 | + * | ||
96 | + * Tipo {String} - $trad("p1") | ||
97 | + */ | ||
98 | + MENSAGEMPADRAO : $trad("p1"), | ||
99 | + /** | ||
100 | + * Propriedade: TRANSICAOSUAVE | ||
101 | + * | ||
102 | + * Altera a transparência quando o mouse sobrepõe a janela e | ||
103 | + * quando sai | ||
104 | + * | ||
105 | + * Tipo {boolean} - true | ||
106 | + */ | ||
107 | + TRANSICAOSUAVE : true, | ||
108 | + /** | ||
109 | + * Propriedade: OPACIDADE | ||
110 | + * | ||
111 | + * Valor da opacidade mínima utilizada quando TRANSICAOSUAVE for | ||
112 | + * igual a true. | ||
113 | + * | ||
114 | + * Varia de 0 a 100 | ||
115 | + * | ||
116 | + * Tipo {numeric} - 20 | ||
117 | + */ | ||
118 | + OPACIDADE : 20, | ||
119 | + /** | ||
120 | + * Function: abreDoc | ||
121 | + * | ||
122 | + * Abre a documentacao do i3geo em uma nova janela do navegador | ||
123 | + * | ||
124 | + * Parametro: | ||
125 | + * | ||
126 | + * url {string} - url que será adicionada a i3GEO.configura.locaplic | ||
127 | + */ | ||
128 | + abreDoc : function(url) { | ||
129 | + if (!url) { | ||
130 | + url = "/documentacao/index.html"; | ||
131 | + } | ||
132 | + window.open(i3GEO.configura.locaplic | ||
133 | + + url); | ||
147 | }, | 134 | }, |
148 | - /* | ||
149 | - Function: abreJanela | ||
150 | - | ||
151 | - Abre a janela flutuante para mostrar as mensagens de ajuda. | ||
152 | - | ||
153 | - Essa função é executada na inicialização do i3GEO | ||
154 | - */ | ||
155 | - abreJanela: function(){ | ||
156 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.abreJanela()");} | ||
157 | - try { | ||
158 | - var nx,ny,corpo,texto,janela,temp, | ||
159 | - largura=262, | ||
160 | - YU = YAHOO.util, | ||
161 | - pos = [20,i3GEO.parametros.h / 2]; | ||
162 | - if(this.ATIVAJANELA === false){return;} | 135 | + /** |
136 | + * Function: abreJanela | ||
137 | + * | ||
138 | + * Abre a janela flutuante para mostrar as mensagens de ajuda. | ||
139 | + * | ||
140 | + * Essa função é executada na | ||
141 | + * inicialização do i3GEO | ||
142 | + */ | ||
143 | + abreJanela : function() { | ||
144 | + try { | ||
145 | + var nx, ny, corpo, texto, janela, temp, largura = 262, YU = YAHOO.util, pos = [ | ||
146 | + 20, i3GEO.parametros.h / 2 | ||
147 | + ]; | ||
148 | + if (this.ATIVAJANELA === false) { | ||
149 | + return; | ||
150 | + } | ||
163 | temp = $i("contemFerramentas"); | 151 | temp = $i("contemFerramentas"); |
164 | - if(temp){ | ||
165 | - largura = parseInt(temp.style.width,10) - 5; | 152 | + if (temp) { |
153 | + largura = parseInt( | ||
154 | + temp.style.width, | ||
155 | + 10) - 5; | ||
166 | } | 156 | } |
167 | - if(!$i("janelaMenTexto")){ | 157 | + if (!$i("janelaMenTexto")) { |
168 | corpo = $i(i3GEO.Interface.IDCORPO); | 158 | corpo = $i(i3GEO.Interface.IDCORPO); |
169 | - if(corpo){pos = YU.Dom.getXY(corpo);} | ||
170 | - else{ | 159 | + if (corpo) { |
160 | + pos = YU.Dom.getXY(corpo); | ||
161 | + } else { | ||
171 | corpo = $i(i3GEO.Interface.IDMAPA); | 162 | corpo = $i(i3GEO.Interface.IDMAPA); |
172 | - if(corpo){pos = YU.Dom.getXY(corpo);} | 163 | + if (corpo) { |
164 | + pos = YU.Dom.getXY(corpo); | ||
165 | + } | ||
173 | } | 166 | } |
174 | - nx = pos[0] - largura - 3; | 167 | + nx = pos[0] |
168 | + - largura | ||
169 | + - 3; | ||
175 | ny = i3GEO.parametros.h - 78; | 170 | ny = i3GEO.parametros.h - 78; |
176 | - texto = '<div id="janelaMenTexto" style="text-align:left;font-size:10px;color:rgb(80,80,80)">'+i3GEO.ajuda.MENSAGEMPADRAO+'</div>'; | ||
177 | - if(nx < 0) | ||
178 | - {nx = 10;ny = ny - 50;} | ||
179 | - janela = i3GEO.janela.cria(largura - 3,70,"",nx,ny," ","i3geo_janelaMensagens",false,"hd","","",true); | 171 | + texto = '<div id="janelaMenTexto" style="text-align:left;font-size:10px;color:rgb(80,80,80)">' |
172 | + + i3GEO.ajuda.MENSAGEMPADRAO | ||
173 | + + '</div>'; | ||
174 | + if (nx < 0) { | ||
175 | + nx = 10; | ||
176 | + ny = ny - 50; | ||
177 | + } | ||
178 | + janela = i3GEO.janela.cria( | ||
179 | + largura - 3, | ||
180 | + 70, | ||
181 | + "", | ||
182 | + nx, | ||
183 | + ny, | ||
184 | + " ", | ||
185 | + "i3geo_janelaMensagens", | ||
186 | + false, | ||
187 | + "hd", | ||
188 | + "", | ||
189 | + "", | ||
190 | + true); | ||
180 | janela[2].innerHTML = texto; | 191 | janela[2].innerHTML = texto; |
181 | - YU.Event.addListener(janela[0].close, "click", i3GEO.ajuda.fechaJanela); | 192 | + YU.Event.addListener( |
193 | + janela[0].close, | ||
194 | + "click", | ||
195 | + i3GEO.ajuda.fechaJanela); | ||
182 | this.ativaCookie(); | 196 | this.ativaCookie(); |
183 | 197 | ||
184 | } | 198 | } |
185 | - } | ||
186 | - catch(e){ | ||
187 | - if(typeof(console) !== 'undefined'){console.error("i3GEO.ajuda.abreJanela "+e);} | 199 | + } catch (e) { |
200 | + if (typeof (console) !== 'undefined') { | ||
201 | + console.error("i3GEO.ajuda.abreJanela " | ||
202 | + + e); | ||
203 | + } | ||
188 | } | 204 | } |
189 | }, | 205 | }, |
190 | - /* | ||
191 | - Ativa o cookie g_janelaMen e inclui o valor "sim". | ||
192 | - | ||
193 | - Toda a vez que a janela é aberta, o cookie é ativado. | ||
194 | - | ||
195 | - Ativando-se o cookie, a janela de mensagens será aberta automaticamente a próxima vez que o i3geo for iniciado | ||
196 | - */ | ||
197 | - ativaCookie: function(){ | 206 | + /** |
207 | + * Ativa o cookie g_janelaMen e inclui o valor "sim". | ||
208 | + * | ||
209 | + * Toda a vez que a janela é aberta, o cookie é ativado. | ||
210 | + * | ||
211 | + * Ativando-se o cookie, a janela de mensagens será aberta | ||
212 | + * automaticamente a próxima vez que o i3geo for iniciado | ||
213 | + */ | ||
214 | + ativaCookie : function() { | ||
198 | var i = i3GEO.util.insereCookie; | 215 | var i = i3GEO.util.insereCookie; |
199 | - i("g_janelaMen","sim"); | ||
200 | - i("botoesAjuda","sim"); | 216 | + i( |
217 | + "g_janelaMen", | ||
218 | + "sim"); | ||
219 | + i( | ||
220 | + "botoesAjuda", | ||
221 | + "sim"); | ||
201 | }, | 222 | }, |
202 | - /* | ||
203 | - Busca mensagens no metadata "MENSAGEM" existentes nos layers do mapa. | ||
204 | - | ||
205 | - Se existirem mensagens, as mesmas são incluídas no letreiro. | ||
206 | - | ||
207 | - O letreiro deve ser um elemento do tipo INPUT (text). | ||
208 | - | ||
209 | - Parametro: | ||
210 | - | ||
211 | - mensagem {String} - (opcional) texto que será mostrado no letreiro. Se não for informado | ||
212 | - será utilizado a variável i3GEO.parametros.mensagens | ||
213 | - */ | ||
214 | - ativaLetreiro: function(mensagem){ | ||
215 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.ativaLetreiro()");} | 223 | + /** |
224 | + * Busca mensagens no metadata "MENSAGEM" existentes nos layers do mapa. | ||
225 | + * | ||
226 | + * Se existirem mensagens, as mesmas são incluídas no | ||
227 | + * letreiro. | ||
228 | + * | ||
229 | + * O letreiro deve ser um elemento do tipo INPUT (text). | ||
230 | + * | ||
231 | + * Parametro: | ||
232 | + * | ||
233 | + * mensagem {String} - (opcional) texto que será mostrado no | ||
234 | + * letreiro. Se não for informado será utilizado a | ||
235 | + * variável i3GEO.parametros.mensagens | ||
236 | + */ | ||
237 | + ativaLetreiro : function(mensagem) { | ||
216 | var l; | 238 | var l; |
217 | - if($i(i3GEO.ajuda.DIVLETREIRO)) | ||
218 | - { | ||
219 | - if(arguments.length === 0) | ||
220 | - {mensagem = i3GEO.parametros.mensagens;} | ||
221 | - if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.ajuda.ativaLetreiro()") < 0) | ||
222 | - {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.ajuda.ativaLetreiro()");} | ||
223 | - try | ||
224 | - {clearTimeout(i3GEO.ajuda.tempoLetreiro);} | ||
225 | - catch(e){i3GEO.ajuda.tempoLetreiro = "";} | 239 | + if ($i(i3GEO.ajuda.DIVLETREIRO)) { |
240 | + if (arguments.length === 0) { | ||
241 | + mensagem = i3GEO.parametros.mensagens; | ||
242 | + } | ||
243 | + if (i3GEO.eventos.NAVEGAMAPA.toString().search( | ||
244 | + "i3GEO.ajuda.ativaLetreiro()") < 0) { | ||
245 | + i3GEO.eventos.NAVEGAMAPA.push("i3GEO.ajuda.ativaLetreiro()"); | ||
246 | + } | ||
247 | + try { | ||
248 | + clearTimeout(i3GEO.ajuda.tempoLetreiro); | ||
249 | + } catch (e) { | ||
250 | + i3GEO.ajuda.tempoLetreiro = ""; | ||
251 | + } | ||
226 | l = $i(i3GEO.ajuda.DIVLETREIRO); | 252 | l = $i(i3GEO.ajuda.DIVLETREIRO); |
227 | - if(l.style.display==="none"){return;} | ||
228 | - l.style.cursor="pointer"; | ||
229 | - if(mensagem === ""){ | 253 | + if (l.style.display === "none") { |
254 | + return; | ||
255 | + } | ||
256 | + l.style.cursor = "pointer"; | ||
257 | + if (mensagem === "") { | ||
230 | l.value = ""; | 258 | l.value = ""; |
231 | return; | 259 | return; |
232 | } | 260 | } |
233 | - if (l.size === 1) | ||
234 | - {l.size = i3GEO.parametros.w / 8;} | ||
235 | - BMessage = mensagem + " ---Clique para parar--- "; | ||
236 | - l.onclick = function() | ||
237 | - {l.style.display = "none";}; | ||
238 | - if (BMessage !== " ---Clique para parar--- "){ | 261 | + if (l.size === 1) { |
262 | + l.size = i3GEO.parametros.w / 8; | ||
263 | + } | ||
264 | + BMessage = mensagem | ||
265 | + + " ---Clique para parar--- "; | ||
266 | + l.onclick = function() { | ||
267 | + l.style.display = "none"; | ||
268 | + }; | ||
269 | + if (BMessage !== " ---Clique para parar--- ") { | ||
239 | BQuantas = 0; | 270 | BQuantas = 0; |
240 | BSize = l.size; | 271 | BSize = l.size; |
241 | - BPos=BSize; | 272 | + BPos = BSize; |
242 | BSpeed = 1; | 273 | BSpeed = 1; |
243 | BSpaces = ""; | 274 | BSpaces = ""; |
244 | i3GEO.ajuda.mostraLetreiro(); | 275 | i3GEO.ajuda.mostraLetreiro(); |
@@ -246,87 +277,132 @@ i3GEO.ajuda = { | @@ -246,87 +277,132 @@ i3GEO.ajuda = { | ||
246 | i3GEO.ajuda.mostraLetreiro(mensagem); | 277 | i3GEO.ajuda.mostraLetreiro(mensagem); |
247 | } | 278 | } |
248 | }, | 279 | }, |
249 | - /* | ||
250 | - Desativa o cookie g_janelaMen. | ||
251 | - | ||
252 | - Toda a vez que a janela é fechada, o cookie é desativado. | ||
253 | - | ||
254 | - Desativando-se o cookie, a janela de mensagens não será aberta automaticamente a próxima vez que o i3geo for iniciado | ||
255 | - */ | ||
256 | - desativaCookie: function(){ | ||
257 | - i3GEO.util.insereCookie("g_janelaMen","nao"); | 280 | + /** |
281 | + * Desativa o cookie g_janelaMen. | ||
282 | + * | ||
283 | + * Toda a vez que a janela é fechada, o cookie é desativado. | ||
284 | + * | ||
285 | + * Desativando-se o cookie, a janela de mensagens não será | ||
286 | + * aberta automaticamente a próxima vez que o i3geo for iniciado | ||
287 | + */ | ||
288 | + desativaCookie : function() { | ||
289 | + i3GEO.util.insereCookie( | ||
290 | + "g_janelaMen", | ||
291 | + "nao"); | ||
258 | }, | 292 | }, |
259 | - /* | ||
260 | - Function: fechaJanela. | ||
261 | - | ||
262 | - Fecha a janela de ajuda. | ||
263 | - */ | ||
264 | - fechaJanela: function(){ | ||
265 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.fechaJanela()");} | 293 | + /** |
294 | + * Function: fechaJanela. | ||
295 | + * | ||
296 | + * Fecha a janela de ajuda. | ||
297 | + */ | ||
298 | + fechaJanela : function() { | ||
266 | i3GEO.ajuda.desativaCookie(); | 299 | i3GEO.ajuda.desativaCookie(); |
267 | - i3GEO.util.removeChild("i3geo_janelaMensagens_c",document.body); | 300 | + i3GEO.util.removeChild( |
301 | + "i3geo_janelaMensagens_c", | ||
302 | + document.body); | ||
268 | }, | 303 | }, |
269 | - /* | ||
270 | - Function: mostraJanela | ||
271 | - | ||
272 | - Mostra um texto dentro da janela de mensagens padrão. | ||
273 | - | ||
274 | - Parametro: | ||
275 | - | ||
276 | - texto {String} - texto a ser mostrado | ||
277 | - */ | ||
278 | - mostraJanela: function(texto){ | ||
279 | - var j = $i(this.DIVAJUDA), | ||
280 | - k = $i("janelaMenTexto"), | ||
281 | - jm = $i("i3geo_janelaMensagens"), | ||
282 | - Dom = YAHOO.util.Dom, | ||
283 | - h = parseInt(Dom.getStyle(jm,"height"),10); | ||
284 | - if(j){ | 304 | + /** |
305 | + * Function: mostraJanela | ||
306 | + * | ||
307 | + * Mostra um texto dentro da janela de mensagens padrão. | ||
308 | + * | ||
309 | + * Parametro: | ||
310 | + * | ||
311 | + * texto {String} - texto a ser mostrado | ||
312 | + */ | ||
313 | + mostraJanela : function(texto) { | ||
314 | + var j = $i(this.DIVAJUDA), k = $i("janelaMenTexto"), jm = $i("i3geo_janelaMensagens"), Dom = YAHOO.util.Dom, h = parseInt( | ||
315 | + Dom.getStyle( | ||
316 | + jm, | ||
317 | + "height"), | ||
318 | + 10); | ||
319 | + if (j) { | ||
285 | j.innerHTML = texto === "" ? "-" : texto; | 320 | j.innerHTML = texto === "" ? "-" : texto; |
286 | - } | ||
287 | - else{ | ||
288 | - if(h) | ||
289 | - {Dom.setY("i3geo_janelaMensagens",Dom.getY(jm) + h);} | ||
290 | - if(k) | ||
291 | - {k.innerHTML = texto;} | ||
292 | - if(this.TRANSICAOSUAVE){ | ||
293 | - texto !== "" ? Dom.setStyle(jm,"opacity","1") : Dom.setStyle(jm,"opacity",(this.OPACIDADE / 100)); | 321 | + } else { |
322 | + if (h) { | ||
323 | + Dom.setY( | ||
324 | + "i3geo_janelaMensagens", | ||
325 | + Dom.getY(jm) | ||
326 | + + h); | ||
327 | + } | ||
328 | + if (k) { | ||
329 | + k.innerHTML = texto; | ||
330 | + } | ||
331 | + if (this.TRANSICAOSUAVE) { | ||
332 | + texto !== "" ? Dom.setStyle( | ||
333 | + jm, | ||
334 | + "opacity", | ||
335 | + "1") : Dom.setStyle( | ||
336 | + jm, | ||
337 | + "opacity", | ||
338 | + (this.OPACIDADE / 100)); | ||
339 | + } | ||
340 | + h = parseInt( | ||
341 | + Dom.getStyle( | ||
342 | + jm, | ||
343 | + "height"), | ||
344 | + 10); | ||
345 | + if (h) { | ||
346 | + Dom.setY( | ||
347 | + jm, | ||
348 | + Dom.getY(jm) | ||
349 | + - h); | ||
294 | } | 350 | } |
295 | - h = parseInt(Dom.getStyle(jm,"height"),10); | ||
296 | - if(h) | ||
297 | - {Dom.setY(jm,Dom.getY(jm) - h);} | ||
298 | } | 351 | } |
299 | }, | 352 | }, |
300 | - /* | ||
301 | - Function: mostraLetreiro | ||
302 | - | ||
303 | - Preenche o elemento INPUT com a mensagem de texto e faz a movimentação das letras. | ||
304 | - | ||
305 | - O aparecimento das letras é controlado por um temporizador e asmensagens são mostradas apenas duas vezes, | ||
306 | - desde o início do redesenho do mapa. | ||
307 | - */ | ||
308 | - mostraLetreiro: function(){ | ||
309 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.mostraLetreiro()");} | ||
310 | - for (var count=0; count<BPos; count += 1) | ||
311 | - {BSpaces+= " ";} | ||
312 | - if (BPos < 1){ | ||
313 | - $i(i3GEO.ajuda.DIVLETREIRO).value = BMessage.substring(Math.abs(BPos), BMessage.length); | ||
314 | - if (BPos+BMessage.length < 1) | ||
315 | - {BPos = BSize;BQuantas = BQuantas + 1;} | 353 | + /** |
354 | + * Function: mostraLetreiro | ||
355 | + * | ||
356 | + * Preenche o elemento INPUT com a mensagem de texto e faz a | ||
357 | + * movimentação das letras. | ||
358 | + * | ||
359 | + * O aparecimento das letras é controlado por um temporizador e as | ||
360 | + * mensagens são mostradas apenas duas vezes, desde o início | ||
361 | + * do redesenho do mapa. | ||
362 | + */ | ||
363 | + mostraLetreiro : function() { | ||
364 | + for (var count = 0; count < BPos; count += 1) { | ||
365 | + BSpaces += " "; | ||
366 | + } | ||
367 | + if (BPos < 1) { | ||
368 | + $i(i3GEO.ajuda.DIVLETREIRO).value = BMessage.substring( | ||
369 | + Math.abs(BPos), | ||
370 | + BMessage.length); | ||
371 | + if (BPos | ||
372 | + + BMessage.length < 1) { | ||
373 | + BPos = BSize; | ||
374 | + BQuantas = BQuantas + 1; | ||
375 | + } | ||
376 | + } else { | ||
377 | + $i(i3GEO.ajuda.DIVLETREIRO).value = BSpaces | ||
378 | + + BMessage; | ||
379 | + } | ||
380 | + BPos -= BSpeed; | ||
381 | + if (BQuantas < 2) { | ||
382 | + i3GEO.ajuda.tempoLetreiro = setTimeout( | ||
383 | + function() { | ||
384 | + i3GEO.ajuda.mostraLetreiro(); | ||
385 | + }, | ||
386 | + 140); | ||
316 | } | 387 | } |
317 | - else | ||
318 | - {$i(i3GEO.ajuda.DIVLETREIRO).value = BSpaces + BMessage;} | ||
319 | - BPos-=BSpeed; | ||
320 | - if (BQuantas < 2) | ||
321 | - {i3GEO.ajuda.tempoLetreiro = setTimeout(function(){i3GEO.ajuda.mostraLetreiro();}, 140);} | ||
322 | }, | 388 | }, |
323 | - /* | ||
324 | - Function: redesSociais | ||
325 | - | ||
326 | - Abre uma janela com informações sobre a presença do i3Geo em redes sociais | ||
327 | - */ | ||
328 | - redesSociais: function(){ | ||
329 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.redesSociais()");} | ||
330 | - i3GEO.janela.cria("400px","400px",i3GEO.configura.locaplic+"/ferramentas/redessociais/index.php","","",$trad("u5c"),YAHOO.util.Dom.generateId(null,"redes")); | 389 | + /** |
390 | + * Function: redesSociais | ||
391 | + * | ||
392 | + * Abre uma janela com informações sobre a presença do | ||
393 | + * i3Geo em redes sociais | ||
394 | + */ | ||
395 | + redesSociais : function() { | ||
396 | + i3GEO.janela.cria( | ||
397 | + "400px", | ||
398 | + "400px", | ||
399 | + i3GEO.configura.locaplic | ||
400 | + + "/ferramentas/redessociais/index.php", | ||
401 | + "", | ||
402 | + "", | ||
403 | + $trad("u5c"), | ||
404 | + YAHOO.util.Dom.generateId( | ||
405 | + null, | ||
406 | + "redes")); | ||
331 | } | 407 | } |
332 | }; | 408 | }; |
333 | \ No newline at end of file | 409 | \ No newline at end of file |
classesjs/classe_analise.js
@@ -33,1309 +33,1781 @@ GNU junto com este programa; se n&atilde;o, escreva para a | @@ -33,1309 +33,1781 @@ GNU junto com este programa; se n&atilde;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 | - /* | ||
41 | - Classe: i3GEO.analise.dialogo | ||
42 | - | ||
43 | - Abre as telas de dialogo das opcoes de analise | ||
44 | - | ||
45 | - Exemplo: | ||
46 | - | ||
47 | - Para abrir a mensagem de dialogo de geracao de buffer, utilize | ||
48 | - | ||
49 | - i3GEO.analise.dialogo.buffer() | 40 | + /** |
41 | + * Classe: i3GEO.analise.dialogo | ||
42 | + * | ||
43 | + * Abre as telas de diálogo das opções de análise | ||
44 | + * | ||
45 | + * Exemplo: | ||
46 | + * | ||
47 | + * Para abrir a mensagem de diálogo de geração de buffer, utilize | ||
48 | + * | ||
49 | + * i3GEO.analise.dialogo.buffer() | ||
50 | + */ | ||
51 | + dialogo : { | ||
52 | + /** | ||
53 | + * Function: heatmap | ||
54 | + * | ||
55 | + * Ferramenta mapa de calor | ||
50 | */ | 56 | */ |
51 | - dialogo:{ | ||
52 | - /* | ||
53 | - Function: heatmap | ||
54 | - | ||
55 | - Abre a janela de dialogo da ferramenta mapa de calor | ||
56 | - */ | ||
57 | - heatmap: function(){ | ||
58 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.heatmap()","heatmap","heatmap"); | ||
59 | - }, | ||
60 | - /* | ||
61 | - Function: saiku | ||
62 | - | ||
63 | - Abre a janela de dialogo da ferramenta SAIKU | ||
64 | - */ | ||
65 | - saiku: function(){ | ||
66 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.saiku()","saiku","saiku"); | ||
67 | - }, | ||
68 | - /* | ||
69 | - Function: graficoInterativo | ||
70 | - | ||
71 | - Abre a janela de dialogo da ferramenta graficointerativo versao flash | ||
72 | - */ | ||
73 | - graficoInterativo: function(){ | ||
74 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo()","graficointerativo","graficointerativo"); | ||
75 | - }, | ||
76 | - /* | ||
77 | - Function: graficoInterativo1 | ||
78 | - | ||
79 | - Abre a janela de dialogo da ferramenta graficointerativo | ||
80 | - */ | ||
81 | - graficoInterativo1: function(){ | ||
82 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo1()","graficointerativo1","graficointerativo1"); | ||
83 | - }, | ||
84 | - /* | ||
85 | - Function: linhaDoTempo | ||
86 | - | ||
87 | - Abre a janela de dialogo da ferramenta linhadotempo | ||
88 | - */ | ||
89 | - linhaDoTempo: function(){ | ||
90 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.dialogo.linhaDoTempo()");} | ||
91 | - i3GEO.janela.cria( | ||
92 | - "450px", | ||
93 | - "350px", | ||
94 | - i3GEO.configura.locaplic+"/ferramentas/linhadotempo/index.php", | ||
95 | - "", | ||
96 | - "", | ||
97 | - "Linha do tempo <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=88' > </a>", | ||
98 | - "i3GEOF.linhaDoTempo", | ||
99 | - false, | ||
100 | - "hd", | ||
101 | - "", | ||
102 | - "", | ||
103 | - "", | ||
104 | - true, | ||
105 | - i3GEO.configura.locaplic+"/imagens/oxygen/16x16/clock.png" | ||
106 | - ); | ||
107 | - atualizaLinhaDoTempo = function(){ | ||
108 | - var doc = "", ifr = ""; | ||
109 | - try{ | ||
110 | - ifr = $i("wdocai"); | ||
111 | - if (navn){ | ||
112 | - if (ifr){ | ||
113 | - doc = ifr.contentDocument; | ||
114 | - } | 57 | + heatmap : function() { |
58 | + i3GEO.util.dialogoFerramenta( | ||
59 | + "i3GEO.analise.dialogo.heatmap()", | ||
60 | + "heatmap", | ||
61 | + "heatmap"); | ||
62 | + }, | ||
63 | + /** | ||
64 | + * Function: saiku | ||
65 | + * | ||
66 | + * Ferramenta SAIKU | ||
67 | + */ | ||
68 | + saiku : function() { | ||
69 | + i3GEO.util.dialogoFerramenta( | ||
70 | + "i3GEO.analise.dialogo.saiku()", | ||
71 | + "saiku", | ||
72 | + "saiku"); | ||
73 | + }, | ||
74 | + /** | ||
75 | + * | ||
76 | + * Ferramenta graficointerativo versao flash | ||
77 | + */ | ||
78 | + graficoInterativo : function() { | ||
79 | + i3GEO.util.dialogoFerramenta( | ||
80 | + "i3GEO.analise.dialogo.graficoInterativo()", | ||
81 | + "graficointerativo", | ||
82 | + "graficointerativo"); | ||
83 | + }, | ||
84 | + /** | ||
85 | + * Function: graficoInterativo1 | ||
86 | + * | ||
87 | + * Ferramenta gráfico interativo | ||
88 | + */ | ||
89 | + graficoInterativo1 : function() { | ||
90 | + i3GEO.util.dialogoFerramenta( | ||
91 | + "i3GEO.analise.dialogo.graficoInterativo1()", | ||
92 | + "graficointerativo1", | ||
93 | + "graficointerativo1"); | ||
94 | + }, | ||
95 | + /** | ||
96 | + * Function: linhaDoTempo | ||
97 | + * | ||
98 | + * Ferramenta linha do tempo | ||
99 | + */ | ||
100 | + linhaDoTempo : function() { | ||
101 | + i3GEO.janela.cria( | ||
102 | + "450px", | ||
103 | + "350px", | ||
104 | + i3GEO.configura.locaplic | ||
105 | + + "/ferramentas/linhadotempo/index.php", | ||
106 | + "", | ||
107 | + "", | ||
108 | + "Linha do tempo <a class=ajuda_usuario target=_blank href='" | ||
109 | + + i3GEO.configura.locaplic | ||
110 | + + "/ajuda_usuario.php?idcategoria=3&idajuda=88' > </a>", | ||
111 | + "i3GEOF.linhaDoTempo", | ||
112 | + false, | ||
113 | + "hd", | ||
114 | + "", | ||
115 | + "", | ||
116 | + "", | ||
117 | + true, | ||
118 | + i3GEO.configura.locaplic | ||
119 | + + "/imagens/oxygen/16x16/clock.png"); | ||
120 | + atualizaLinhaDoTempo = function() { | ||
121 | + var doc = "", ifr = ""; | ||
122 | + try { | ||
123 | + ifr = $i("wdocai"); | ||
124 | + if (navn) { | ||
125 | + if (ifr) { | ||
126 | + doc = ifr.contentDocument; | ||
115 | } | 127 | } |
116 | - else{ | ||
117 | - if(document.frames("wdocai")){ | ||
118 | - doc = document.frames("wdocai").document; | ||
119 | - } | 128 | + } else { |
129 | + if (document.frames("wdocai")) { | ||
130 | + doc = document.frames("wdocai").document; | ||
120 | } | 131 | } |
121 | - doc.getElementById("tl") ? window.parent.wdocai.carregaDados() : i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()"); | ||
122 | } | 132 | } |
123 | - catch(e){ | ||
124 | - i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()"); | ||
125 | - if(typeof(console) !== 'undefined'){console.error("i3GEO.analise.linhaDoTempo "+e);} | ||
126 | - } | ||
127 | - }; | ||
128 | - if(i3GEO.eventos.NAVEGAMAPA.toString().search("atualizaLinhaDoTempo()") < 0) | ||
129 | - {i3GEO.eventos.NAVEGAMAPA.push("atualizaLinhaDoTempo()");} | ||
130 | - var ifr = $i("wdocai"); | ||
131 | - //ifr.style.height = "75%"; | ||
132 | - ifr.style.width = "100%"; | ||
133 | - }, | ||
134 | - /* | ||
135 | - Function: perfil | ||
136 | - | ||
137 | - Abre a janela de dialogo da ferramenta perfil | ||
138 | - */ | ||
139 | - perfil: function(){ | ||
140 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.perfil()","perfil","perfil"); | ||
141 | - }, | ||
142 | - /* | ||
143 | - Function: gradePontos | ||
144 | - | ||
145 | - Abre a janela de dialogo da ferramenta gradepontos | ||
146 | - */ | ||
147 | - gradePontos: function(){ | ||
148 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePontos()","gradepontos","gradeDePontos"); | ||
149 | - }, | ||
150 | - /* | ||
151 | - Function: gradePol | ||
152 | - | ||
153 | - Abre a janela de dialogo da ferramenta gradepol | ||
154 | - */ | ||
155 | - gradePol: function(){ | ||
156 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePol()","gradepol","gradeDePoligonos"); | ||
157 | - }, | ||
158 | - /* | ||
159 | - Function: gradeHex | ||
160 | - | ||
161 | - Abre a janela de dialogo da ferramenta gradehex | ||
162 | - */ | ||
163 | - gradeHex: function(){ | ||
164 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradeHex()","gradehex","gradeDeHex"); | ||
165 | - }, | ||
166 | - /* | ||
167 | - Function: analisaGeometrias | ||
168 | - | ||
169 | - Abre a janela de dialogo da ferramenta analisageometrias | ||
170 | - */ | ||
171 | - analisaGeometrias: function(){ | ||
172 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.analisaGeometrias()","analisageometrias","analisaGeometrias"); | ||
173 | - }, | ||
174 | - /* | ||
175 | - Function: pontosdistri | ||
176 | - | ||
177 | - Abre a janela de dialogo da ferramenta pontosdistri | ||
178 | - */ | ||
179 | - pontosdistri: function(){ | ||
180 | - i3GEO.parametros.r === "nao" ? i3GEO.janela.tempoMsg($trad("x22")) : i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontosdistri()","pontosdistri","pontosDistri"); | ||
181 | - }, | ||
182 | - /* | ||
183 | - Function: pontoempoligono | ||
184 | - | ||
185 | - Abre a janela de dialogo da ferramenta pontoempoligono | ||
186 | - */ | ||
187 | - pontoempoligono: function(){ | ||
188 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontoempoligono()","pontoempoligono","pontoEmPoligono"); | ||
189 | - }, | ||
190 | - /* | ||
191 | - Function: centromassa | ||
192 | - | ||
193 | - Abre a janela de dialogo da ferramenta centro medio | ||
194 | - */ | ||
195 | - centromassa: function(){ | ||
196 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centromassa()","centromassa","centromassa"); | ||
197 | - }, | ||
198 | - /* | ||
199 | - Function: nptPol | ||
200 | - | ||
201 | - Abre a janela de dialogo da ferramenta nptpol | ||
202 | - */ | ||
203 | - nptPol: function(){ | ||
204 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.nptPol()","nptpol","nptpol"); | ||
205 | - }, | ||
206 | - /* | ||
207 | - Function: buffer | ||
208 | - | ||
209 | - Abre a janela de dialogo da ferramenta buffer | ||
210 | - */ | ||
211 | - buffer: function(){ | ||
212 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.buffer()","buffer","buffer"); | ||
213 | - }, | ||
214 | - /* | ||
215 | - Function: distanciaptpt | ||
216 | - | ||
217 | - Abre a janela de dialogo da ferramenta distanciaptpt | ||
218 | - */ | ||
219 | - distanciaptpt: function(){ | ||
220 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.distanciaptpt()","distanciaptpt","distanciaptpt"); | ||
221 | - }, | ||
222 | - /* | ||
223 | - Function: centroide | ||
224 | - | ||
225 | - Abre a janela de dialogo da ferramenta centroide | ||
226 | - */ | ||
227 | - centroide: function(){ | ||
228 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centroide()","centroide","centroide"); | ||
229 | - }, | ||
230 | - /* | ||
231 | - Function: dissolve | ||
232 | - | ||
233 | - Abre a janela de dialogo da ferramenta dissolve | ||
234 | - */ | ||
235 | - dissolve: function(){ | ||
236 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.dissolve()","dissolve","dissolve"); | ||
237 | - }, | ||
238 | - /* | ||
239 | - Function: agrupaElementos | ||
240 | - | ||
241 | - Abre a janela de dialogo da ferramenta agrupaelementos | ||
242 | - */ | ||
243 | - agrupaElementos: function(){ | ||
244 | - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.agrupaElementos()","agrupaelementos","agrupaElementos"); | 133 | + doc.getElementById("tl") ? window.parent.wdocai.carregaDados() : i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()"); |
134 | + } catch (e) { | ||
135 | + i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()"); | ||
136 | + } | ||
137 | + }; | ||
138 | + if (i3GEO.eventos.NAVEGAMAPA.toString().search( | ||
139 | + "atualizaLinhaDoTempo()") < 0) { | ||
140 | + i3GEO.eventos.NAVEGAMAPA.push("atualizaLinhaDoTempo()"); | ||
245 | } | 141 | } |
142 | + var ifr = $i("wdocai"); | ||
143 | + // ifr.style.height = "75%"; | ||
144 | + ifr.style.width = "100%"; | ||
246 | }, | 145 | }, |
247 | /** | 146 | /** |
248 | - * i3GEO.analise.medeDistancia | ||
249 | - * Ativa e controla a opcao de medicao de distancias. | ||
250 | - * A medida e feita quando o usuario clica no mapa com esta opcao ativa | ||
251 | - * Quando o botao e acionado, abre-se a janela que mostra o resultado da medida, o icone que segue o mouse e alterado. | ||
252 | - * Para mostrar o resultado do calculo, e incluido um div especifico. | 147 | + * Function: perfil |
148 | + * | ||
149 | + * Ferramenta perfil | ||
253 | */ | 150 | */ |
254 | - medeDistancia:{ | ||
255 | - /** | ||
256 | - * Armazena os pontos clicados para realizar os calculos | 151 | + perfil : function() { |
152 | + i3GEO.util.dialogoFerramenta( | ||
153 | + "i3GEO.analise.dialogo.perfil()", | ||
154 | + "perfil", | ||
155 | + "perfil"); | ||
156 | + }, | ||
157 | + /** | ||
158 | + * Function: gradePontos | ||
159 | + * | ||
160 | + * Ferramenta grade de pontos | ||
161 | + */ | ||
162 | + gradePontos : function() { | ||
163 | + i3GEO.util.dialogoFerramenta( | ||
164 | + "i3GEO.analise.dialogo.gradePontos()", | ||
165 | + "gradepontos", | ||
166 | + "gradeDePontos"); | ||
167 | + }, | ||
168 | + /** | ||
169 | + * Function: gradePol | ||
170 | + * | ||
171 | + * Ferramenta grade de polígonos | ||
172 | + */ | ||
173 | + gradePol : function() { | ||
174 | + i3GEO.util.dialogoFerramenta( | ||
175 | + "i3GEO.analise.dialogo.gradePol()", | ||
176 | + "gradepol", | ||
177 | + "gradeDePoligonos"); | ||
178 | + }, | ||
179 | + /** | ||
180 | + * Function: gradeHex | ||
181 | + * | ||
182 | + * Ferramenta grade de hexágonos | ||
183 | + */ | ||
184 | + gradeHex : function() { | ||
185 | + i3GEO.util.dialogoFerramenta( | ||
186 | + "i3GEO.analise.dialogo.gradeHex()", | ||
187 | + "gradehex", | ||
188 | + "gradeDeHex"); | ||
189 | + }, | ||
190 | + /** | ||
191 | + * Function: analisaGeometrias | ||
192 | + * | ||
193 | + * Ferramenta de análise de geometrias | ||
194 | + */ | ||
195 | + analisaGeometrias : function() { | ||
196 | + i3GEO.util.dialogoFerramenta( | ||
197 | + "i3GEO.analise.dialogo.analisaGeometrias()", | ||
198 | + "analisageometrias", | ||
199 | + "analisaGeometrias"); | ||
200 | + }, | ||
201 | + /** | ||
202 | + * Function: pontosdistri | ||
203 | + * | ||
204 | + * Ferramenta de cálculo de distribuição de pontos | ||
205 | + */ | ||
206 | + pontosdistri : function() { | ||
207 | + i3GEO.parametros.r === "nao" ? i3GEO.janela.tempoMsg($trad("x22")) : i3GEO.util.dialogoFerramenta( | ||
208 | + "i3GEO.analise.dialogo.pontosdistri()", | ||
209 | + "pontosdistri", | ||
210 | + "pontosDistri"); | ||
211 | + }, | ||
212 | + /** | ||
213 | + * Function: pontoempoligono | ||
214 | + * | ||
215 | + * Ferramenta ponto em polígono | ||
216 | + */ | ||
217 | + pontoempoligono : function() { | ||
218 | + i3GEO.util.dialogoFerramenta( | ||
219 | + "i3GEO.analise.dialogo.pontoempoligono()", | ||
220 | + "pontoempoligono", | ||
221 | + "pontoEmPoligono"); | ||
222 | + }, | ||
223 | + /** | ||
224 | + * Function: centromassa | ||
225 | + * | ||
226 | + * Ferramenta centro médio | ||
227 | + */ | ||
228 | + centromassa : function() { | ||
229 | + i3GEO.util.dialogoFerramenta( | ||
230 | + "i3GEO.analise.dialogo.centromassa()", | ||
231 | + "centromassa", | ||
232 | + "centromassa"); | ||
233 | + }, | ||
234 | + /** | ||
235 | + * Function: nptPol | ||
236 | + * | ||
237 | + * Ferramenta número de pontos em polígono | ||
238 | + */ | ||
239 | + nptPol : function() { | ||
240 | + i3GEO.util.dialogoFerramenta( | ||
241 | + "i3GEO.analise.dialogo.nptPol()", | ||
242 | + "nptpol", | ||
243 | + "nptpol"); | ||
244 | + }, | ||
245 | + /** | ||
246 | + * Function: buffer | ||
247 | + * | ||
248 | + * Ferramenta buffer | ||
249 | + */ | ||
250 | + buffer : function() { | ||
251 | + i3GEO.util.dialogoFerramenta( | ||
252 | + "i3GEO.analise.dialogo.buffer()", | ||
253 | + "buffer", | ||
254 | + "buffer"); | ||
255 | + }, | ||
256 | + /** | ||
257 | + * Function: distanciaptpt | ||
258 | + * | ||
259 | + * Ferramenta distância entre pontos | ||
260 | + */ | ||
261 | + distanciaptpt : function() { | ||
262 | + i3GEO.util.dialogoFerramenta( | ||
263 | + "i3GEO.analise.dialogo.distanciaptpt()", | ||
264 | + "distanciaptpt", | ||
265 | + "distanciaptpt"); | ||
266 | + }, | ||
267 | + /** | ||
268 | + * Function: centroide | ||
269 | + * | ||
270 | + * Ferramenta centróide | ||
271 | + */ | ||
272 | + centroide : function() { | ||
273 | + i3GEO.util.dialogoFerramenta( | ||
274 | + "i3GEO.analise.dialogo.centroide()", | ||
275 | + "centroide", | ||
276 | + "centroide"); | ||
277 | + }, | ||
278 | + /** | ||
279 | + * Function: dissolve | ||
280 | + * | ||
281 | + * Ferramenta dissolve bordas comuns | ||
282 | + */ | ||
283 | + dissolve : function() { | ||
284 | + i3GEO.util.dialogoFerramenta( | ||
285 | + "i3GEO.analise.dialogo.dissolve()", | ||
286 | + "dissolve", | ||
287 | + "dissolve"); | ||
288 | + }, | ||
289 | + /** | ||
290 | + * Function: agrupaElementos | ||
291 | + * | ||
292 | + * Ferramenta agrupa elementos | ||
293 | + */ | ||
294 | + agrupaElementos : function() { | ||
295 | + i3GEO.util.dialogoFerramenta( | ||
296 | + "i3GEO.analise.dialogo.agrupaElementos()", | ||
297 | + "agrupaelementos", | ||
298 | + "agrupaElementos"); | ||
299 | + } | ||
300 | + }, | ||
301 | + /*************************************************************************** | ||
302 | + * Class: medeDistancia | ||
303 | + * | ||
304 | + * Ativa e controla a opção de medição de | ||
305 | + * distâncias. A medida é feita quando o usuário clica no mapa com esta | ||
306 | + * opção ativa. Quando o botão e acionado, abre-se a janela que mostra o | ||
307 | + * resultado da medida, o ícone que segue o mouse é alterado. Para mostrar o | ||
308 | + * resultado do cálculo, é incluido um div específico. | ||
309 | + */ | ||
310 | + medeDistancia : { | ||
311 | + /*********************************************************************** | ||
312 | + * Armazena os pontos clicados para realizar os calculos | ||
313 | + */ | ||
314 | + pontos : {}, | ||
315 | + /*********************************************************************** | ||
316 | + * Function: inicia | ||
317 | + * | ||
318 | + * Inicia a operação de medição, abrindo a janela de resultados e | ||
319 | + * criando os componentes necessários. São registrados os eventos de | ||
320 | + * clique sobre o mapa e fechamento da janela de resultados | ||
321 | + */ | ||
322 | + inicia : function() { | ||
323 | + i3GEO.eventos.cliquePerm.desativa(); | ||
324 | + i3GEO.analise.medeDistancia.criaJanela(); | ||
325 | + i3GEO.analise.medeDistancia[i3GEO.Interface["ATUAL"]].inicia(); | ||
326 | + }, | ||
327 | + /*********************************************************************** | ||
328 | + * Cria a janela para mostrar os resultados da medicao | ||
329 | + */ | ||
330 | + criaJanela : function() { | ||
331 | + var novoel, ins, imagemxy, janela; | ||
332 | + if (!$i("mostradistancia")) { | ||
333 | + novoel = document.createElement("div"); | ||
334 | + novoel.id = "mostradistancia"; | ||
335 | + ins = '<div class="hd" style="font-size:11px"> Distância aproximada <a class=ajuda_usuario target=_blank href="' | ||
336 | + + i3GEO.configura.locaplic | ||
337 | + + '/ajuda_usuario.php?idcategoria=6&idajuda=50" > </a></div>' | ||
338 | + + '<div class="bd" style="text-align:left;padding:3px;" >' | ||
339 | + + '<div style="text-align:left;padding:3px;" id="mostradistancia_calculo" ></div>' | ||
340 | + + '<div style="text-align:left;padding:3px;" id="mostradistancia_calculo_movel" ></div>' | ||
341 | + + '<div style="text-align:left;font-size:10px" >' | ||
342 | + + '<span style="color:navy;cursor:pointer;text-align:left;" >' | ||
343 | + + '<table class=lista7 ><tr><td><input style="cursor:pointer" type="checkbox" id="pararraios" checked /></td><td>Raios</td><td> </td>' | ||
344 | + + '<td>' | ||
345 | + + '<input style="cursor:pointer" type="checkbox" id="parartextos" checked />' | ||
346 | + + '</td><td>Textos<td>' | ||
347 | + + '<td> Estilo:</td><td>' | ||
348 | + + i3GEO.desenho.caixaEstilos() | ||
349 | + + '</td>' | ||
350 | + + '<td> <input id=i3GEObotaoPerfil size="22" type="button" value="perfil"></td>' | ||
351 | + + '</tr></table></span>' | ||
352 | + + '</div>' | ||
353 | + + '</div>'; | ||
354 | + novoel.innerHTML = ins; | ||
355 | + novoel.style.borderColor = "gray"; | ||
356 | + document.body.appendChild(novoel); | ||
357 | + janela = new YAHOO.widget.Panel( | ||
358 | + "mostradistancia", | ||
359 | + { | ||
360 | + iframe : true, | ||
361 | + width : "330px", | ||
362 | + fixedcenter : false, | ||
363 | + constraintoviewport : true, | ||
364 | + underlay : "none", | ||
365 | + close : true, | ||
366 | + visible : true, | ||
367 | + draggable : true, | ||
368 | + modal : false | ||
369 | + }); | ||
370 | + YAHOO.i3GEO.janela.manager.register(janela); | ||
371 | + janela.render(); | ||
372 | + YAHOO.util.Event.addListener( | ||
373 | + janela.close, | ||
374 | + "click", | ||
375 | + i3GEO.analise.medeDistancia.fechaJanela); | ||
376 | + } else { | ||
377 | + i3GEO.util.defineValor( | ||
378 | + "mostradistancia_calculo", | ||
379 | + "innerHTML", | ||
380 | + ""); | ||
381 | + janela = YAHOO.i3GEO.janela.manager.find("mostradistancia"); | ||
382 | + } | ||
383 | + janela.show(); | ||
384 | + imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); | ||
385 | + janela.moveTo( | ||
386 | + imagemxy[0] + 150, | ||
387 | + imagemxy[1]); | ||
388 | + // | ||
389 | + // botao que abre a ferramenta de calculo de perfis. | ||
390 | + // pontosdistobj contem as coordenadas dos pontos | ||
391 | + // | ||
392 | + new YAHOO.widget.Button( | ||
393 | + "i3GEObotaoPerfil", | ||
394 | + { | ||
395 | + onclick : { | ||
396 | + fn : function() { | ||
397 | + var js = i3GEO.configura.locaplic | ||
398 | + + "/ferramentas/perfil/index.js"; | ||
399 | + i3GEO.util.scriptTag( | ||
400 | + js, | ||
401 | + "i3GEOF.perfil.criaJanelaFlutuante(i3GEO.analise.pontosdistobj)", | ||
402 | + "i3GEOF.perfil_script"); | ||
403 | + } | ||
404 | + } | ||
405 | + }); | ||
406 | + }, | ||
407 | + /*********************************************************************** | ||
408 | + * Fecha a janela e os elementos graficos criados para a ferramenta de | ||
409 | + * medicao Chama a funcao de cada interface que complementam o processo | ||
410 | + * de fechamento da janela | ||
411 | + */ | ||
412 | + fechaJanela : function() { | ||
413 | + var janela; | ||
414 | + i3GEO.eventos.cliquePerm.ativa(); | ||
415 | + janela = YAHOO.i3GEO.janela.manager.find("mostradistancia"); | ||
416 | + if (janela) { | ||
417 | + YAHOO.i3GEO.janela.manager.remove(janela); | ||
418 | + janela.destroy(); | ||
419 | + } | ||
420 | + i3GEO.barraDeBotoes.ativaIcone("pointer"); | ||
421 | + i3GEO.analise.medeDistancia[i3GEO.Interface["ATUAL"]].fechaJanela(); | ||
422 | + }, | ||
423 | + /*********************************************************************** | ||
424 | + * Funcoes especificas da interface openlayers | ||
425 | + */ | ||
426 | + openlayers : { | ||
427 | + /******************************************************************* | ||
428 | + * Inicializa o processo Cria a variavel para guardar os pontos | ||
429 | + * Executa a funcao de inicializacao do desenho, que cria o layer | ||
430 | + * para receber os graficos | ||
257 | */ | 431 | */ |
258 | - pontos: {}, | ||
259 | - /** | ||
260 | - * Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessorios | ||
261 | - * Sao registrados os eventos de clique sobre o mapa e fechamento da janela de resultados | 432 | + inicia : function() { |
433 | + var linha, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], controle = i3geoOL.getControlsBy( | ||
434 | + "id", | ||
435 | + "i3GeoMedeDistancia"); | ||
436 | + i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); | ||
437 | + i3GEO.analise.medeDistancia.pontos = { | ||
438 | + xpt : [], | ||
439 | + ypt : [], | ||
440 | + dist : [] | ||
441 | + }; | ||
442 | + if (controle.length === 0) { | ||
443 | + linha = new OpenLayers.Control.DrawFeature( | ||
444 | + i3GEO.desenho.layergrafico, | ||
445 | + OpenLayers.Handler.Path, | ||
446 | + { | ||
447 | + autoActivate : true, | ||
448 | + id : "i3GeoMedeDistancia", | ||
449 | + type : OpenLayers.Control.TYPE_TOOL, | ||
450 | + callbacks : { | ||
451 | + done : function(feature) { | ||
452 | + var f = new OpenLayers.Feature.Vector( | ||
453 | + feature, | ||
454 | + { | ||
455 | + origem : "medeDistancia" | ||
456 | + }, | ||
457 | + { | ||
458 | + graphicName : "square", | ||
459 | + pointRadius : 10, | ||
460 | + graphicOpacity : 1, | ||
461 | + strokeWidth : estilo.linewidth, | ||
462 | + strokeColor : estilo.linecolor | ||
463 | + }); | ||
464 | + i3GEO.desenho.layergrafico.addFeatures([ | ||
465 | + f | ||
466 | + ]); | ||
467 | + if (i3GEO.Interface) { | ||
468 | + i3GEO.Interface.openlayers.sobeLayersGraficos(); | ||
469 | + } | ||
470 | + i3GEO.analise.medeDistancia.openlayers.mostraParcial( | ||
471 | + 0, | ||
472 | + 0, | ||
473 | + 0); | ||
474 | + i3GEO.analise.medeDistancia.openlayers.inicia(); | ||
475 | + }, | ||
476 | + modify : function(point) { | ||
477 | + var n, x1, y1, x2, y2, trecho, parcial, direcao; | ||
478 | + n = i3GEO.analise.medeDistancia.pontos.ypt.length; | ||
479 | + if (n > 0) { | ||
480 | + x1 = i3GEO.analise.medeDistancia.pontos.xpt[n - 1]; | ||
481 | + y1 = i3GEO.analise.medeDistancia.pontos.ypt[n - 1]; | ||
482 | + x2 = point.x; | ||
483 | + y2 = point.y; | ||
484 | + // projeta | ||
485 | + if (i3GEO.Interface.openlayers.googleLike) { | ||
486 | + temp = i3GEO.util.extOSM2Geo(x1 | ||
487 | + + " " | ||
488 | + + y1 | ||
489 | + + " " | ||
490 | + + x2 | ||
491 | + + " " | ||
492 | + + y2); | ||
493 | + temp = temp.split(" "); | ||
494 | + x1 = temp[0]; | ||
495 | + y1 = temp[1]; | ||
496 | + x2 = temp[2]; | ||
497 | + y2 = temp[3]; | ||
498 | + } | ||
499 | + trecho = i3GEO.calculo.distancia( | ||
500 | + x1, | ||
501 | + y1, | ||
502 | + x2, | ||
503 | + y2); | ||
504 | + parcial = i3GEO.analise.medeDistancia.openlayers.somaDist(); | ||
505 | + direcao = i3GEO.calculo.direcao( | ||
506 | + x1, | ||
507 | + y1, | ||
508 | + x2, | ||
509 | + y2); | ||
510 | + direcao = i3GEO.calculo.dd2dms( | ||
511 | + direcao, | ||
512 | + direcao); | ||
513 | + direcao = direcao[0]; | ||
514 | + i3GEO.analise.medeDistancia.openlayers.mostraParcial( | ||
515 | + trecho, | ||
516 | + parcial, | ||
517 | + direcao); | ||
518 | + } | ||
519 | + }, | ||
520 | + point : function(point) { | ||
521 | + var n, x1, y1, x2, y2, trecho, temp, circ, label, raio, pontoRaio, | ||
522 | + // registra os pontos e calcula a distancia | ||
523 | + total = 0; | ||
524 | + i3GEO.analise.medeDistancia.pontos.xpt.push(point.x); | ||
525 | + i3GEO.analise.medeDistancia.pontos.ypt.push(point.y); | ||
526 | + n = i3GEO.analise.medeDistancia.pontos.ypt.length; | ||
527 | + if (n > 1) { | ||
528 | + x1 = i3GEO.analise.medeDistancia.pontos.xpt[n - 2]; | ||
529 | + y1 = i3GEO.analise.medeDistancia.pontos.ypt[n - 2]; | ||
530 | + x2 = point.x; | ||
531 | + y2 = point.y; | ||
532 | + raio = point.distanceTo(new OpenLayers.Geometry.Point( | ||
533 | + x1, | ||
534 | + y1)); | ||
535 | + pontoRaio = new OpenLayers.Geometry.Point( | ||
536 | + x1, | ||
537 | + y1); | ||
538 | + // projeta | ||
539 | + if (i3GEO.Interface.openlayers.googleLike) { | ||
540 | + temp = i3GEO.util.extOSM2Geo(x1 | ||
541 | + + " " | ||
542 | + + y1 | ||
543 | + + " " | ||
544 | + + x2 | ||
545 | + + " " | ||
546 | + + y2); | ||
547 | + temp = temp.split(" "); | ||
548 | + x1 = temp[0]; | ||
549 | + y1 = temp[1]; | ||
550 | + x2 = temp[2]; | ||
551 | + y2 = temp[3]; | ||
552 | + } | ||
553 | + trecho = i3GEO.calculo.distancia( | ||
554 | + x1, | ||
555 | + y1, | ||
556 | + x2, | ||
557 | + y2); | ||
558 | + i3GEO.analise.medeDistancia.pontos.dist.push(trecho); | ||
559 | + total = i3GEO.analise.medeDistancia.openlayers.somaDist(); | ||
560 | + i3GEO.analise.medeDistancia.openlayers.mostraTotal( | ||
561 | + trecho, | ||
562 | + total); | ||
563 | + // raio | ||
564 | + if ($i("pararraios") | ||
565 | + && $i("pararraios").checked === true) { | ||
566 | + circ = new OpenLayers.Feature.Vector( | ||
567 | + OpenLayers.Geometry.Polygon.createRegularPolygon( | ||
568 | + pontoRaio, | ||
569 | + raio, | ||
570 | + 30), | ||
571 | + { | ||
572 | + origem : "medeDistanciaExcluir" | ||
573 | + }, | ||
574 | + { | ||
575 | + fill : false, | ||
576 | + strokeColor : estilo.circcolor, | ||
577 | + strokeWidth : 1 | ||
578 | + }); | ||
579 | + i3GEO.desenho.layergrafico.addFeatures([ | ||
580 | + circ | ||
581 | + ]); | ||
582 | + } | ||
583 | + // desenha ponto | ||
584 | + if ($i("parartextos") | ||
585 | + && $i("parartextos").checked === true) { | ||
586 | + label = new OpenLayers.Feature.Vector( | ||
587 | + new OpenLayers.Geometry.Point( | ||
588 | + point.x, | ||
589 | + point.y), | ||
590 | + { | ||
591 | + origem : "medeDistanciaExcluir" | ||
592 | + }, | ||
593 | + { | ||
594 | + graphicName : "square", | ||
595 | + pointRadius : 3, | ||
596 | + strokeColor : "black", | ||
597 | + graphicOpacity : 1, | ||
598 | + strokeWidth : 1, | ||
599 | + fillColor : "white", | ||
600 | + label : trecho.toFixed(3), | ||
601 | + labelAlign : "rb", | ||
602 | + fontColor : estilo.textcolor, | ||
603 | + fontSize : 12, | ||
604 | + fontWeight : "bold" | ||
605 | + }); | ||
606 | + i3GEO.desenho.layergrafico.addFeatures([ | ||
607 | + label | ||
608 | + ]); | ||
609 | + } | ||
610 | + } | ||
611 | + } | ||
612 | + } | ||
613 | + }); | ||
614 | + i3geoOL.addControl(linha); | ||
615 | + } | ||
616 | + }, | ||
617 | + /******************************************************************* | ||
618 | + * Soma os valores de distancia guardados em pontos.dist | ||
262 | */ | 619 | */ |
263 | - inicia: function(){ | ||
264 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");} | ||
265 | - i3GEO.eventos.cliquePerm.desativa(); | ||
266 | - i3GEO.analise.medeDistancia.criaJanela(); | ||
267 | - i3GEO.analise.medeDistancia[i3GEO.Interface["ATUAL"]].inicia(); | 620 | + somaDist : function() { |
621 | + var n, i, total = 0; | ||
622 | + n = i3GEO.analise.medeDistancia.pontos.dist.length; | ||
623 | + for (i = 0; i < n; i++) { | ||
624 | + total += i3GEO.analise.medeDistancia.pontos.dist[i]; | ||
625 | + } | ||
626 | + return total; | ||
268 | }, | 627 | }, |
269 | - /** | ||
270 | - * Cria a janela para mostrar os resultados da medicao | 628 | + /******************************************************************* |
629 | + * Fecha a janela que mostra os dados Pergunta ao usuario se os | ||
630 | + * graficos devem ser removidos Os graficos sao marcados com o | ||
631 | + * atributo "origem" Os raios e pontos sao sempre removidos | ||
271 | */ | 632 | */ |
272 | - criaJanela: function(){ | ||
273 | - var novoel,ins,imagemxy,janela; | ||
274 | - if (!$i("mostradistancia")){ | ||
275 | - novoel = document.createElement("div"); | ||
276 | - novoel.id = "mostradistancia"; | ||
277 | - 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>' + | ||
278 | - '<div class="bd" style="text-align:left;padding:3px;" >' + | ||
279 | - '<div style="text-align:left;padding:3px;" id="mostradistancia_calculo" ></div>' + | ||
280 | - '<div style="text-align:left;padding:3px;" id="mostradistancia_calculo_movel" ></div>' + | ||
281 | - '<div style="text-align:left;font-size:10px" >' + | ||
282 | - '<span style="color:navy;cursor:pointer;text-align:left;" >' + | ||
283 | - '<table class=lista7 ><tr><td><input style="cursor:pointer" type="checkbox" id="pararraios" checked /></td><td>Raios</td><td> </td>' + | ||
284 | - '<td>' + | ||
285 | - '<input style="cursor:pointer" type="checkbox" id="parartextos" checked />' + | ||
286 | - '</td><td>Textos<td>' + | ||
287 | - '<td> Estilo:</td><td>'+i3GEO.desenho.caixaEstilos()+'</td>' + | ||
288 | - '<td> <input id=i3GEObotaoPerfil size="22" type="button" value="perfil"></td>' + | ||
289 | - '</tr></table></span>' + | ||
290 | - '</div>' + | ||
291 | - '</div>'; | ||
292 | - novoel.innerHTML = ins; | ||
293 | - novoel.style.borderColor="gray"; | ||
294 | - document.body.appendChild(novoel); | ||
295 | - janela = new YAHOO.widget.Panel("mostradistancia", {iframe:true,width:"330px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); | ||
296 | - YAHOO.i3GEO.janela.manager.register(janela); | ||
297 | - janela.render(); | ||
298 | - YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeDistancia.fechaJanela); | 633 | + fechaJanela : function() { |
634 | + var temp, controle = i3geoOL.getControlsBy( | ||
635 | + "id", | ||
636 | + "i3GeoMedeDistancia"), f = i3GEO.desenho.layergrafico.getFeaturesByAttribute( | ||
637 | + "origem", | ||
638 | + "medeDistancia"); | ||
639 | + if (controle.length > 0) { | ||
640 | + controle[0].deactivate(); | ||
641 | + i3geoOL.removeControl(controle[0]); | ||
299 | } | 642 | } |
300 | - else{ | ||
301 | - i3GEO.util.defineValor("mostradistancia_calculo","innerHTML",""); | ||
302 | - janela = YAHOO.i3GEO.janela.manager.find("mostradistancia"); | 643 | + if (f |
644 | + && f.length > 0) { | ||
645 | + temp = window.confirm($trad("x94")); | ||
646 | + if (temp) { | ||
647 | + i3GEO.desenho.layergrafico.destroyFeatures(f); | ||
648 | + } | ||
649 | + } | ||
650 | + f = i3GEO.desenho.layergrafico.getFeaturesByAttribute( | ||
651 | + "origem", | ||
652 | + "medeDistanciaExcluir"); | ||
653 | + if (f | ||
654 | + && f.length > 0) { | ||
655 | + i3GEO.desenho.layergrafico.destroyFeatures(f); | ||
303 | } | 656 | } |
304 | - janela.show(); | ||
305 | - imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); | ||
306 | - janela.moveTo(imagemxy[0]+150,imagemxy[1]); | ||
307 | - // | ||
308 | - //botao que abre a ferramenta de calculo de perfis. | ||
309 | - //pontosdistobj contem as coordenadas dos pontos | ||
310 | - // | ||
311 | - new YAHOO.widget.Button( | ||
312 | - "i3GEObotaoPerfil", | ||
313 | - {onclick:{fn: function(){ | ||
314 | - var js = i3GEO.configura.locaplic+"/ferramentas/perfil/index.js"; | ||
315 | - i3GEO.util.scriptTag(js,"i3GEOF.perfil.criaJanelaFlutuante(i3GEO.analise.pontosdistobj)","i3GEOF.perfil_script"); | ||
316 | - }}} | ||
317 | - ); | ||
318 | }, | 657 | }, |
319 | - /** | ||
320 | - *Fecha a janela e os elementos graficos criados para a ferramenta de medicao | ||
321 | - *Chama a funcao de cada interface que complementam o processo de fechamento da janela | 658 | + /******************************************************************* |
659 | + * Mostra a totalizacao das linhas ja digitalizadas | ||
322 | */ | 660 | */ |
323 | - fechaJanela: function(){ | ||
324 | - var janela; | ||
325 | - i3GEO.eventos.cliquePerm.ativa(); | ||
326 | - janela = YAHOO.i3GEO.janela.manager.find("mostradistancia"); | ||
327 | - if(janela){ | ||
328 | - YAHOO.i3GEO.janela.manager.remove(janela); | ||
329 | - janela.destroy(); | 661 | + mostraTotal : function(trecho, total) { |
662 | + var mostra = $i("mostradistancia_calculo"), texto; | ||
663 | + if (mostra) { | ||
664 | + texto = "<b>" | ||
665 | + + $trad("x96") | ||
666 | + + ":</b> " | ||
667 | + + total.toFixed(3) | ||
668 | + + " km" | ||
669 | + + "<br><b>" | ||
670 | + + $trad("x96") | ||
671 | + + ":</b> " | ||
672 | + + (total * 1000).toFixed(2) | ||
673 | + + " m" | ||
674 | + + "<br>" | ||
675 | + + $trad("x25") | ||
676 | + + ": " | ||
677 | + + i3GEO.calculo.metododistancia; | ||
678 | + mostra.innerHTML = texto; | ||
330 | } | 679 | } |
331 | - i3GEO.barraDeBotoes.ativaIcone("pointer"); | ||
332 | - i3GEO.analise.medeDistancia[i3GEO.Interface["ATUAL"]].fechaJanela(); | ||
333 | }, | 680 | }, |
334 | - /** | ||
335 | - * Funcoes especificas da interface openlayers | 681 | + /******************************************************************* |
682 | + * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao | ||
683 | + * do mouse | ||
336 | */ | 684 | */ |
337 | - openlayers:{ | ||
338 | - /** | ||
339 | - * Inicializa o processo | ||
340 | - * Cria a variavel para guardar os pontos | ||
341 | - * Executa a funcao de inicializacao do desenho, que cria o layer para receber os graficos | ||
342 | - */ | ||
343 | - inicia: function(){ | ||
344 | - var linha, | ||
345 | - estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], | ||
346 | - controle = i3geoOL.getControlsBy("id","i3GeoMedeDistancia"); | ||
347 | - i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); | ||
348 | - i3GEO.analise.medeDistancia.pontos = { | ||
349 | - xpt: [], | ||
350 | - ypt: [], | ||
351 | - dist: [] | ||
352 | - }; | ||
353 | - if(controle.length === 0){ | ||
354 | - linha = new OpenLayers.Control.DrawFeature( | ||
355 | - i3GEO.desenho.layergrafico, | ||
356 | - OpenLayers.Handler.Path, | ||
357 | - { | ||
358 | - autoActivate: true, | ||
359 | - id: "i3GeoMedeDistancia", | ||
360 | - type: OpenLayers.Control.TYPE_TOOL, | ||
361 | - callbacks:{ | ||
362 | - done: function(feature){ | ||
363 | - var f = new OpenLayers.Feature.Vector( | ||
364 | - feature, | ||
365 | - { | ||
366 | - origem: "medeDistancia" | ||
367 | - }, | ||
368 | - { | ||
369 | - graphicName: "square", | ||
370 | - pointRadius: 10, | ||
371 | - graphicOpacity: 1, | ||
372 | - strokeWidth: estilo.linewidth, | ||
373 | - strokeColor: estilo.linecolor | ||
374 | - } | ||
375 | - ); | ||
376 | - i3GEO.desenho.layergrafico.addFeatures([f]); | ||
377 | - if(i3GEO.Interface){ | ||
378 | - i3GEO.Interface.openlayers.sobeLayersGraficos(); | ||
379 | - } | ||
380 | - i3GEO.analise.medeDistancia.openlayers.mostraParcial(0,0,0); | ||
381 | - i3GEO.analise.medeDistancia.openlayers.inicia(); | ||
382 | - }, | ||
383 | - modify: function(point){ | ||
384 | - var n,x1,y1,x2,y2,trecho,parcial,direcao; | ||
385 | - n = i3GEO.analise.medeDistancia.pontos.ypt.length; | ||
386 | - if(n > 0){ | ||
387 | - x1 = i3GEO.analise.medeDistancia.pontos.xpt[n-1]; | ||
388 | - y1 = i3GEO.analise.medeDistancia.pontos.ypt[n-1]; | ||
389 | - x2 = point.x; | ||
390 | - y2 = point.y; | ||
391 | - //projeta | ||
392 | - if(i3GEO.Interface.openlayers.googleLike){ | ||
393 | - temp = i3GEO.util.extOSM2Geo(x1+" "+y1+" "+x2+" "+y2); | ||
394 | - temp = temp.split(" "); | ||
395 | - x1 = temp[0]; | ||
396 | - y1 = temp[1]; | ||
397 | - x2 = temp[2]; | ||
398 | - y2 = temp[3]; | ||
399 | - } | ||
400 | - trecho = i3GEO.calculo.distancia(x1,y1,x2,y2); | ||
401 | - parcial = i3GEO.analise.medeDistancia.openlayers.somaDist(); | ||
402 | - direcao = i3GEO.calculo.direcao(x1,y1,x2,y2); | ||
403 | - direcao = i3GEO.calculo.dd2dms(direcao,direcao); | ||
404 | - direcao = direcao[0]; | ||
405 | - i3GEO.analise.medeDistancia.openlayers.mostraParcial(trecho,parcial,direcao); | ||
406 | - } | ||
407 | - }, | ||
408 | - point: function(point){ | ||
409 | - var n,x1,y1,x2,y2,trecho,temp,circ,label,raio,pontoRaio, | ||
410 | - //registra os pontos e calcula a distancia | ||
411 | - total = 0; | ||
412 | - i3GEO.analise.medeDistancia.pontos.xpt.push(point.x); | ||
413 | - i3GEO.analise.medeDistancia.pontos.ypt.push(point.y); | ||
414 | - n = i3GEO.analise.medeDistancia.pontos.ypt.length; | ||
415 | - if(n > 1){ | ||
416 | - x1 = i3GEO.analise.medeDistancia.pontos.xpt[n-2]; | ||
417 | - y1 = i3GEO.analise.medeDistancia.pontos.ypt[n-2]; | ||
418 | - x2 = point.x; | ||
419 | - y2 = point.y; | ||
420 | - raio = point.distanceTo(new OpenLayers.Geometry.Point(x1,y1)); | ||
421 | - pontoRaio = new OpenLayers.Geometry.Point(x1,y1); | ||
422 | - //projeta | ||
423 | - if(i3GEO.Interface.openlayers.googleLike){ | ||
424 | - temp = i3GEO.util.extOSM2Geo(x1+" "+y1+" "+x2+" "+y2); | ||
425 | - temp = temp.split(" "); | ||
426 | - x1 = temp[0]; | ||
427 | - y1 = temp[1]; | ||
428 | - x2 = temp[2]; | ||
429 | - y2 = temp[3]; | ||
430 | - } | ||
431 | - trecho = i3GEO.calculo.distancia(x1,y1,x2,y2); | ||
432 | - i3GEO.analise.medeDistancia.pontos.dist.push(trecho); | ||
433 | - total = i3GEO.analise.medeDistancia.openlayers.somaDist(); | ||
434 | - i3GEO.analise.medeDistancia.openlayers.mostraTotal(trecho,total); | ||
435 | - //raio | ||
436 | - if($i("pararraios") && $i("pararraios").checked === true ){ | ||
437 | - circ = new OpenLayers.Feature.Vector( | ||
438 | - OpenLayers.Geometry.Polygon.createRegularPolygon( | ||
439 | - pontoRaio, | ||
440 | - raio, | ||
441 | - 30 | ||
442 | - ), | ||
443 | - { | ||
444 | - origem: "medeDistanciaExcluir" | ||
445 | - }, | ||
446 | - { | ||
447 | - fill: false, | ||
448 | - strokeColor: estilo.circcolor, | ||
449 | - strokeWidth: 1 | ||
450 | - } | ||
451 | - ); | ||
452 | - i3GEO.desenho.layergrafico.addFeatures([circ]); | ||
453 | - } | ||
454 | - //desenha ponto | ||
455 | - if($i("parartextos") && $i("parartextos").checked === true ){ | ||
456 | - label = new OpenLayers.Feature.Vector( | ||
457 | - new OpenLayers.Geometry.Point(point.x,point.y), | ||
458 | - { | ||
459 | - origem: "medeDistanciaExcluir" | ||
460 | - }, | ||
461 | - { | ||
462 | - graphicName: "square", | ||
463 | - pointRadius: 3, | ||
464 | - strokeColor: "black", | ||
465 | - graphicOpacity: 1, | ||
466 | - strokeWidth: 1, | ||
467 | - fillColor: "white", | ||
468 | - label: trecho.toFixed(3), | ||
469 | - labelAlign: "rb", | ||
470 | - fontColor: estilo.textcolor, | ||
471 | - fontSize: 12, | ||
472 | - fontWeight: "bold" | ||
473 | - } | ||
474 | - ); | ||
475 | - i3GEO.desenho.layergrafico.addFeatures([label]); | ||
476 | - } | ||
477 | - } | ||
478 | - } | ||
479 | - } | ||
480 | - } | ||
481 | - ); | ||
482 | - i3geoOL.addControl(linha); | ||
483 | - } | ||
484 | - }, | ||
485 | - /** | ||
486 | - * Soma os valores de distancia guardados em pontos.dist | ||
487 | - */ | ||
488 | - somaDist: function(){ | ||
489 | - var n,i, | ||
490 | - total = 0; | ||
491 | - n = i3GEO.analise.medeDistancia.pontos.dist.length; | ||
492 | - for(i=0;i<n;i++){ | ||
493 | - total += i3GEO.analise.medeDistancia.pontos.dist[i]; | ||
494 | - } | ||
495 | - return total; | ||
496 | - }, | ||
497 | - /** | ||
498 | - * Fecha a janela que mostra os dados | ||
499 | - * Pergunta ao usuario se os graficos devem ser removidos | ||
500 | - * Os graficos sao marcados com o atributo "origem" | ||
501 | - * Os raios e pontos sao sempre removidos | ||
502 | - */ | ||
503 | - fechaJanela: function(){ | ||
504 | - var temp, | ||
505 | - controle = i3geoOL.getControlsBy("id","i3GeoMedeDistancia"), | ||
506 | - f = i3GEO.desenho.layergrafico.getFeaturesByAttribute("origem","medeDistancia"); | ||
507 | - if(controle.length > 0){ | ||
508 | - controle[0].deactivate(); | ||
509 | - i3geoOL.removeControl(controle[0]); | ||
510 | - } | ||
511 | - if(f && f.length > 0){ | ||
512 | - temp = window.confirm($trad("x94")); | ||
513 | - if(temp){ | ||
514 | - i3GEO.desenho.layergrafico.destroyFeatures(f); | ||
515 | - } | ||
516 | - } | ||
517 | - f = i3GEO.desenho.layergrafico.getFeaturesByAttribute("origem","medeDistanciaExcluir"); | ||
518 | - if(f && f.length > 0){ | ||
519 | - i3GEO.desenho.layergrafico.destroyFeatures(f); | ||
520 | - } | ||
521 | - }, | ||
522 | - /** | ||
523 | - * Mostra a totalizacao das linhas ja digitalizadas | ||
524 | - */ | ||
525 | - mostraTotal: function(trecho,total){ | ||
526 | - var mostra = $i("mostradistancia_calculo"), | ||
527 | - texto; | ||
528 | - if (mostra){ | ||
529 | - texto = "<b>"+$trad("x96")+":</b> "+total.toFixed(3)+" km"+ | ||
530 | - "<br><b>"+$trad("x96")+":</b> "+(total*1000).toFixed(2)+" m"+ | ||
531 | - "<br>"+$trad("x25")+": "+i3GEO.calculo.metododistancia; | ||
532 | - mostra.innerHTML = texto; | ||
533 | - } | ||
534 | - }, | ||
535 | - /** | ||
536 | - * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse | ||
537 | - */ | ||
538 | - mostraParcial: function(trecho,parcial,direcao){ | ||
539 | - var mostra = $i("mostradistancia_calculo_movel"), | ||
540 | - texto; | ||
541 | - if (mostra){ | ||
542 | - texto = "<b>"+$trad("x95")+":</b> "+trecho.toFixed(3)+" km"+ | ||
543 | - "<br><b>"+$trad("x97")+":</b> "+(parcial + trecho).toFixed(3)+" km" + | ||
544 | - "<br><b>"+$trad("x23")+" (DMS):</b> "+direcao; | ||
545 | - mostra.innerHTML = texto; | ||
546 | - } | 685 | + mostraParcial : function(trecho, parcial, direcao) { |
686 | + var mostra = $i("mostradistancia_calculo_movel"), texto; | ||
687 | + if (mostra) { | ||
688 | + texto = "<b>" | ||
689 | + + $trad("x95") | ||
690 | + + ":</b> " | ||
691 | + + trecho.toFixed(3) | ||
692 | + + " km" | ||
693 | + + "<br><b>" | ||
694 | + + $trad("x97") | ||
695 | + + ":</b> " | ||
696 | + + (parcial + trecho).toFixed(3) | ||
697 | + + " km" | ||
698 | + + "<br><b>" | ||
699 | + + $trad("x23") | ||
700 | + + " (DMS):</b> " | ||
701 | + + direcao; | ||
702 | + mostra.innerHTML = texto; | ||
547 | } | 703 | } |
548 | - }, | ||
549 | - googlemaps:{ | ||
550 | - /** | ||
551 | - * Inicializa o processo | ||
552 | - * Cria a variavel para guardar os pontos | ||
553 | - * Executa a funcao de inicializacao do desenho, que cria o layer para receber os graficos | ||
554 | - */ | ||
555 | - inicia: function(){ | ||
556 | - i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); | ||
557 | - i3GeoMap.setOptions({disableDoubleClickZoom:true}); | ||
558 | - i3GeoMap.setOptions({draggableCursor:'crosshair'}); | ||
559 | - var evtdblclick = null,evtclick = null,evtmousemove = null, | ||
560 | - pontos = { | ||
561 | - xpt: [], | ||
562 | - ypt: [], | ||
563 | - dist: [], | ||
564 | - mvcLine: new google.maps.MVCArray(), | ||
565 | - mvcMarkers: new google.maps.MVCArray(), | ||
566 | - line: null, | ||
567 | - polygon: null | ||
568 | - }, | ||
569 | - termina = function(){ | ||
570 | - google.maps.event.removeListener(evtdblclick); | ||
571 | - google.maps.event.removeListener(evtclick); | ||
572 | - google.maps.event.removeListener(evtmousemove); | ||
573 | - pontos.line.setOptions({clickable: true}); | ||
574 | - google.maps.event.addListener(pontos.line, 'click', function(shape) { | ||
575 | - if(shape.setEditable){ | 704 | + } |
705 | + }, | ||
706 | + googlemaps : { | ||
707 | + /******************************************************************* | ||
708 | + * Inicializa o processo Cria a variavel para guardar os pontos | ||
709 | + * Executa a funcao de inicializacao do desenho, que cria o layer | ||
710 | + * para receber os graficos | ||
711 | + */ | ||
712 | + inicia : function() { | ||
713 | + i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); | ||
714 | + i3GeoMap.setOptions({ | ||
715 | + disableDoubleClickZoom : true | ||
716 | + }); | ||
717 | + i3GeoMap.setOptions({ | ||
718 | + draggableCursor : 'crosshair' | ||
719 | + }); | ||
720 | + var evtdblclick = null, evtclick = null, evtmousemove = null, pontos = { | ||
721 | + xpt : [], | ||
722 | + ypt : [], | ||
723 | + dist : [], | ||
724 | + mvcLine : new google.maps.MVCArray(), | ||
725 | + mvcMarkers : new google.maps.MVCArray(), | ||
726 | + line : null, | ||
727 | + polygon : null | ||
728 | + }, termina = function() { | ||
729 | + google.maps.event.removeListener(evtdblclick); | ||
730 | + google.maps.event.removeListener(evtclick); | ||
731 | + google.maps.event.removeListener(evtmousemove); | ||
732 | + pontos.line.setOptions({ | ||
733 | + clickable : true | ||
734 | + }); | ||
735 | + google.maps.event.addListener( | ||
736 | + pontos.line, | ||
737 | + 'click', | ||
738 | + function(shape) { | ||
739 | + if (shape.setEditable) { | ||
576 | shape.setEditable(!shape.editable); | 740 | shape.setEditable(!shape.editable); |
577 | } | 741 | } |
578 | }); | 742 | }); |
579 | - if(pontos){ | ||
580 | - i3GEO.desenho.googlemaps.shapes.push(pontos.mvcLine); | ||
581 | - i3GEO.desenho.googlemaps.shapes.push(pontos.line); | ||
582 | - pontos = null; | ||
583 | - } | ||
584 | - }; | ||
585 | - evtclick = google.maps.event.addListener(i3GeoMap, "click", function(evt) { | ||
586 | - var x1,x2,y1,y2,trecho=0,total,n, | ||
587 | - estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao]; | ||
588 | - // When the map is clicked, pass the LatLng obect to the measureAdd function | 743 | + if (pontos) { |
744 | + i3GEO.desenho.googlemaps.shapes.push(pontos.mvcLine); | ||
745 | + i3GEO.desenho.googlemaps.shapes.push(pontos.line); | ||
746 | + pontos = null; | ||
747 | + } | ||
748 | + }; | ||
749 | + evtclick = google.maps.event.addListener( | ||
750 | + i3GeoMap, | ||
751 | + "click", | ||
752 | + function(evt) { | ||
753 | + var x1, x2, y1, y2, trecho = 0, total, n, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao]; | ||
754 | + // When the map is clicked, pass the LatLng obect to the | ||
755 | + // measureAdd function | ||
589 | pontos.mvcLine.push(evt.latLng); | 756 | pontos.mvcLine.push(evt.latLng); |
590 | pontos.xpt.push(evt.latLng.lng()); | 757 | pontos.xpt.push(evt.latLng.lng()); |
591 | pontos.ypt.push(evt.latLng.lat()); | 758 | pontos.ypt.push(evt.latLng.lat()); |
592 | n = pontos.xpt.length; | 759 | n = pontos.xpt.length; |
593 | - //desenha um circulo | 760 | + // desenha um circulo |
594 | if (pontos.mvcLine.getLength() > 1) { | 761 | if (pontos.mvcLine.getLength() > 1) { |
595 | - x1 = pontos.xpt[n-2]; | ||
596 | - y1 = pontos.ypt[n-2]; | 762 | + x1 = pontos.xpt[n - 2]; |
763 | + y1 = pontos.ypt[n - 2]; | ||
597 | x2 = evt.latLng.lng(); | 764 | x2 = evt.latLng.lng(); |
598 | y2 = evt.latLng.lat(); | 765 | y2 = evt.latLng.lat(); |
599 | - //raio = google.maps.geometry.spherical.computeDistanceBetween(evt.latLng,new google.maps.LatLng(y1,x1)) | ||
600 | - trecho = i3GEO.calculo.distancia(x1,y1,x2,y2); | 766 | + // raio = |
767 | + // google.maps.geometry.spherical.computeDistanceBetween(evt.latLng,new | ||
768 | + // google.maps.LatLng(y1,x1)) | ||
769 | + trecho = i3GEO.calculo.distancia( | ||
770 | + x1, | ||
771 | + y1, | ||
772 | + x2, | ||
773 | + y2); | ||
601 | pontos.dist.push(trecho); | 774 | pontos.dist.push(trecho); |
602 | total = i3GEO.analise.medeDistancia.googlemaps.somaDist(pontos); | 775 | total = i3GEO.analise.medeDistancia.googlemaps.somaDist(pontos); |
603 | - i3GEO.analise.medeDistancia.googlemaps.mostraTotal(trecho,total); | ||
604 | - if($i("pararraios") && $i("pararraios").checked === true ){ | ||
605 | - i3GEO.desenho.googlemaps.shapes.push( | ||
606 | - new google.maps.Circle({ | ||
607 | - map: i3GeoMap, | ||
608 | - fillOpacity: 0, | ||
609 | - clickable: false, | ||
610 | - strokeColor: estilo.circcolor, | ||
611 | - strokeOpacity: 1, | ||
612 | - strokeWeight: estilo.linewidth, | ||
613 | - center: new google.maps.LatLng(y1,x1), | ||
614 | - radius: trecho*1000, | ||
615 | - origem: "medeDistanciaExcluir" | ||
616 | - }) | ||
617 | - ); | 776 | + i3GEO.analise.medeDistancia.googlemaps.mostraTotal( |
777 | + trecho, | ||
778 | + total); | ||
779 | + if ($i("pararraios") | ||
780 | + && $i("pararraios").checked === true) { | ||
781 | + i3GEO.desenho.googlemaps.shapes.push(new google.maps.Circle( | ||
782 | + { | ||
783 | + map : i3GeoMap, | ||
784 | + fillOpacity : 0, | ||
785 | + clickable : false, | ||
786 | + strokeColor : estilo.circcolor, | ||
787 | + strokeOpacity : 1, | ||
788 | + strokeWeight : estilo.linewidth, | ||
789 | + center : new google.maps.LatLng( | ||
790 | + y1, | ||
791 | + x1), | ||
792 | + radius : trecho * 1000, | ||
793 | + origem : "medeDistanciaExcluir" | ||
794 | + })); | ||
618 | } | 795 | } |
619 | } | 796 | } |
620 | - //desenha uma marca no ponto | ||
621 | - if($i("parartextos") && $i("parartextos").checked === true ){ | ||
622 | - i3GEO.desenho.googlemaps.shapes.push( | ||
623 | - new google.maps.Marker({ | ||
624 | - map: i3GeoMap, | ||
625 | - fillOpacity: 0, | ||
626 | - clickable: false, | ||
627 | - position:evt.latLng, | ||
628 | - icon: { | ||
629 | - path: google.maps.SymbolPath.CIRCLE, | ||
630 | - scale: 2.5, | ||
631 | - strokeColor: "#ffffff", | ||
632 | - title: trecho.toFixed(0)+" km" | ||
633 | - }, | ||
634 | - origem: "medeDistanciaExcluir" | ||
635 | - }) | ||
636 | - ); | 797 | + // desenha uma marca no ponto |
798 | + if ($i("parartextos") | ||
799 | + && $i("parartextos").checked === true) { | ||
800 | + i3GEO.desenho.googlemaps.shapes.push(new google.maps.Marker( | ||
801 | + { | ||
802 | + map : i3GeoMap, | ||
803 | + fillOpacity : 0, | ||
804 | + clickable : false, | ||
805 | + position : evt.latLng, | ||
806 | + icon : { | ||
807 | + path : google.maps.SymbolPath.CIRCLE, | ||
808 | + scale : 2.5, | ||
809 | + strokeColor : "#ffffff", | ||
810 | + title : trecho.toFixed(0) | ||
811 | + + " km" | ||
812 | + }, | ||
813 | + origem : "medeDistanciaExcluir" | ||
814 | + })); | ||
637 | } | 815 | } |
638 | - //mais um ponto para criar uma linha movel | 816 | + // mais um ponto para criar uma linha movel |
639 | pontos.mvcLine.push(evt.latLng); | 817 | pontos.mvcLine.push(evt.latLng); |
640 | }); | 818 | }); |
641 | - evtmousemove = google.maps.event.addListener(i3GeoMap, "mousemove", function(evt) { | ||
642 | - if(!$i("mostradistancia_calculo")){ | 819 | + evtmousemove = google.maps.event.addListener( |
820 | + i3GeoMap, | ||
821 | + "mousemove", | ||
822 | + function(evt) { | ||
823 | + if (!$i("mostradistancia_calculo")) { | ||
643 | termina.call(); | 824 | termina.call(); |
644 | return; | 825 | return; |
645 | } | 826 | } |
646 | - var x1,y1,x2,y2,direcao,parcial, | ||
647 | - estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], | ||
648 | - n = pontos.xpt.length; | 827 | + var x1, y1, x2, y2, direcao, parcial, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], n = pontos.xpt.length; |
649 | 828 | ||
650 | // If there is more than one vertex on the line | 829 | // If there is more than one vertex on the line |
651 | if (pontos.mvcLine.getLength() > 0) { | 830 | if (pontos.mvcLine.getLength() > 0) { |
652 | // If the line hasn't been created yet | 831 | // If the line hasn't been created yet |
653 | if (!pontos.line) { | 832 | if (!pontos.line) { |
654 | // Create the line (google.maps.Polyline) | 833 | // Create the line (google.maps.Polyline) |
655 | - pontos.line = new google.maps.Polyline({ | ||
656 | - map: i3GeoMap, | ||
657 | - clickable: false, | ||
658 | - strokeColor: estilo.linecolor, | ||
659 | - strokeOpacity: 1, | ||
660 | - strokeWeight: estilo.linewidth, | ||
661 | - path:pontos.mvcLine, | ||
662 | - origem: "medeDistancia" | ||
663 | - }); | 834 | + pontos.line = new google.maps.Polyline( |
835 | + { | ||
836 | + map : i3GeoMap, | ||
837 | + clickable : false, | ||
838 | + strokeColor : estilo.linecolor, | ||
839 | + strokeOpacity : 1, | ||
840 | + strokeWeight : estilo.linewidth, | ||
841 | + path : pontos.mvcLine, | ||
842 | + origem : "medeDistancia" | ||
843 | + }); | ||
664 | } | 844 | } |
665 | pontos.mvcLine.pop(); | 845 | pontos.mvcLine.pop(); |
666 | pontos.mvcLine.push(evt.latLng); | 846 | pontos.mvcLine.push(evt.latLng); |
667 | parcial = i3GEO.analise.medeDistancia.googlemaps.somaDist(pontos); | 847 | parcial = i3GEO.analise.medeDistancia.googlemaps.somaDist(pontos); |
668 | - x1 = pontos.xpt[n-1]; | ||
669 | - y1 = pontos.ypt[n-1]; | 848 | + x1 = pontos.xpt[n - 1]; |
849 | + y1 = pontos.ypt[n - 1]; | ||
670 | x2 = evt.latLng.lng(); | 850 | x2 = evt.latLng.lng(); |
671 | y2 = evt.latLng.lat(); | 851 | y2 = evt.latLng.lat(); |
672 | - //raio = google.maps.geometry.spherical.computeDistanceBetween(evt.latLng,new google.maps.LatLng(y1,x1)) | ||
673 | - trecho = i3GEO.calculo.distancia(x1,y1,x2,y2); | ||
674 | - direcao = i3GEO.calculo.direcao(x1,y1,x2,y2); | ||
675 | - direcao = i3GEO.calculo.dd2dms(direcao,direcao); | 852 | + // raio = |
853 | + // google.maps.geometry.spherical.computeDistanceBetween(evt.latLng,new | ||
854 | + // google.maps.LatLng(y1,x1)) | ||
855 | + trecho = i3GEO.calculo.distancia( | ||
856 | + x1, | ||
857 | + y1, | ||
858 | + x2, | ||
859 | + y2); | ||
860 | + direcao = i3GEO.calculo.direcao( | ||
861 | + x1, | ||
862 | + y1, | ||
863 | + x2, | ||
864 | + y2); | ||
865 | + direcao = i3GEO.calculo.dd2dms( | ||
866 | + direcao, | ||
867 | + direcao); | ||
676 | direcao = direcao[0]; | 868 | direcao = direcao[0]; |
677 | - i3GEO.analise.medeDistancia.googlemaps.mostraParcial(trecho,parcial,direcao); | 869 | + i3GEO.analise.medeDistancia.googlemaps.mostraParcial( |
870 | + trecho, | ||
871 | + parcial, | ||
872 | + direcao); | ||
678 | } | 873 | } |
679 | }); | 874 | }); |
680 | - evtdblclick = google.maps.event.addListener(i3GeoMap, "dblclick", function(evt) { | 875 | + evtdblclick = google.maps.event.addListener( |
876 | + i3GeoMap, | ||
877 | + "dblclick", | ||
878 | + function(evt) { | ||
681 | termina.call(); | 879 | termina.call(); |
682 | }); | 880 | }); |
683 | - }, | ||
684 | - /** | ||
685 | - * Soma os valores de distancia guardados em pontos.dist | ||
686 | - */ | ||
687 | - somaDist: function(pontos){ | ||
688 | - var n,i, | ||
689 | - total = 0; | ||
690 | - n = pontos.dist.length; | ||
691 | - for(i=0;i<n;i++){ | ||
692 | - total += pontos.dist[i]; | ||
693 | - } | ||
694 | - return total; | ||
695 | - }, | ||
696 | - /** | ||
697 | - * Fecha a janela que mostra os dados | ||
698 | - * Pergunta ao usuario se os graficos devem ser removidos | ||
699 | - * Os graficos sao marcados com o atributo "origem" | ||
700 | - * Os raios e pontos sao sempre removidos | ||
701 | - */ | ||
702 | - fechaJanela: function(){ | ||
703 | - i3GeoMap.setOptions({disableDoubleClickZoom:false}); | ||
704 | - i3GeoMap.setOptions({draggableCursor:undefined}); | ||
705 | - var f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","medeDistancia"); | ||
706 | - if(f && f.length > 0){ | ||
707 | - temp = window.confirm($trad("x94")); | ||
708 | - if(temp){ | ||
709 | - i3GEO.desenho.googlemaps.destroyFeatures(f); | ||
710 | - } | ||
711 | - } | ||
712 | - f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","medeDistanciaExcluir"); | ||
713 | - if(f && f.length > 0){ | ||
714 | - i3GEO.desenho.googlemaps.destroyFeatures(f); | ||
715 | - } | ||
716 | - }, | ||
717 | - /** | ||
718 | - * Mostra a totalizacao das linhas ja digitalizadas | ||
719 | - */ | ||
720 | - mostraTotal: function(trecho,total){ | ||
721 | - var mostra = $i("mostradistancia_calculo"), | ||
722 | - texto; | ||
723 | - if (mostra){ | ||
724 | - texto = "<b>"+$trad("x96")+":</b> "+total.toFixed(3)+" km"+ | ||
725 | - "<br><b>"+$trad("x96")+":</b> "+(total*1000).toFixed(2)+" m"+ | ||
726 | - "<br>"+$trad("x25")+": "+i3GEO.calculo.metododistancia; | ||
727 | - mostra.innerHTML = texto; | ||
728 | - } | ||
729 | - }, | ||
730 | - /** | ||
731 | - * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse | ||
732 | - */ | ||
733 | - mostraParcial: function(trecho,parcial,direcao){ | ||
734 | - var mostra = $i("mostradistancia_calculo_movel"), | ||
735 | - texto; | ||
736 | - if (mostra){ | ||
737 | - texto = "<b>"+$trad("x95")+":</b> "+trecho.toFixed(3)+" km"+ | ||
738 | - "<br><b>"+$trad("x97")+":</b> "+(parcial + trecho).toFixed(3)+" km" + | ||
739 | - "<br><b>"+$trad("x23")+" (DMS):</b> "+direcao; | ||
740 | - mostra.innerHTML = texto; | ||
741 | - } | 881 | + }, |
882 | + /******************************************************************* | ||
883 | + * Soma os valores de distancia guardados em pontos.dist | ||
884 | + */ | ||
885 | + somaDist : function(pontos) { | ||
886 | + var n, i, total = 0; | ||
887 | + n = pontos.dist.length; | ||
888 | + for (i = 0; i < n; i++) { | ||
889 | + total += pontos.dist[i]; | ||
742 | } | 890 | } |
891 | + return total; | ||
743 | }, | 892 | }, |
744 | - googleearth:{ | ||
745 | - pontosdistobj: { | ||
746 | - xpt: [], | ||
747 | - ypt: [], | ||
748 | - dist: [], | ||
749 | - distV: [], | ||
750 | - xtela: [], | ||
751 | - ytela: [], | ||
752 | - ximg: [], | ||
753 | - yimg: [], | ||
754 | - linhas: [], | ||
755 | - linhastemp: [] | ||
756 | - }, | ||
757 | - inicia: function(){ | ||
758 | - if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.googleearth.clique()") < 0) | ||
759 | - {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.googleearth.clique()");} | ||
760 | - if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.googleearth.movimento()") < 0) | ||
761 | - {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.googleearth.movimento()");} | ||
762 | - if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0) | ||
763 | - {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");} | ||
764 | - }, | ||
765 | - clique: function(){ | ||
766 | - var pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj, | ||
767 | - n,d,dd; | ||
768 | - n = pontosdistobj.xpt.length; | ||
769 | - pontosdistobj.xpt[n] = objposicaocursor.ddx; | ||
770 | - pontosdistobj.ypt[n] = objposicaocursor.ddy; | ||
771 | - pontosdistobj.xtela[n] = objposicaocursor.telax; | ||
772 | - pontosdistobj.ytela[n] = objposicaocursor.telay; | ||
773 | - pontosdistobj.ximg[n] = objposicaocursor.imgx; | ||
774 | - pontosdistobj.yimg[n] = objposicaocursor.imgy; | ||
775 | - pontosdistobj.dist[n] = 0; | ||
776 | - if (n > 0){ | ||
777 | - d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); | ||
778 | - pontosdistobj.dist[n] = d + pontosdistobj.dist[n-1]; | ||
779 | - if($i("pararraios") && $i("pararraios").checked === true ){ | ||
780 | - dd = Math.sqrt(((Math.pow((pontosdistobj.xpt[n] - pontosdistobj.xpt[n-1]),2)) + (Math.pow((pontosdistobj.ypt[n] - pontosdistobj.ypt[n-1]),2)) )); | ||
781 | - i3GEO.desenho.googleearth.insereCirculo(pontosdistobj.xpt[n],pontosdistobj.ypt[n],dd,"","divGeometriasTemp"); | ||
782 | - } | ||
783 | - if($i("parartextos") && $i("parartextos").checked === true ){ | ||
784 | - i3GEO.desenho.googleearth.insereMarca(d+" km",objposicaocursor.ddx,objposicaocursor.ddy,"","divGeometriasTemp"); | ||
785 | - } | ||
786 | - //cria a linha ligando os dois ultimos pontos | ||
787 | - i3GEO.desenho.googleearth.insereLinha(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],pontosdistobj.xpt[n],pontosdistobj.ypt[n],"","divGeometriasTemp"); | ||
788 | - } | ||
789 | - }, | ||
790 | - movimento: function(){ | ||
791 | - var n,d,r,da, | ||
792 | - pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj, | ||
793 | - calculo = i3GEO.calculo; | ||
794 | - n = pontosdistobj.xpt.length; | ||
795 | - if (n > 0){ | ||
796 | - d = calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); | ||
797 | - r = calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); | ||
798 | - r = calculo.dd2dms(r,r); | ||
799 | - r = r[0]; | ||
800 | - d = d * 1; | ||
801 | - da = d + pontosdistobj.dist[n-1]; | ||
802 | - i3GEO.analise.medeDistancia.googleearth.mostraParcial(d,da,r); | ||
803 | - } | ||
804 | - }, | ||
805 | - /** | ||
806 | - * Fecha a janela que mostra os dados | ||
807 | - * Pergunta ao usuario se os graficos devem ser removidos | ||
808 | - * Os graficos sao marcados com o atributo "origem" | ||
809 | - * Os raios e pontos sao sempre removidos | ||
810 | - */ | ||
811 | - fechaJanela: function(){ | 893 | + /******************************************************************* |
894 | + * Fecha a janela que mostra os dados Pergunta ao usuario se os | ||
895 | + * graficos devem ser removidos Os graficos sao marcados com o | ||
896 | + * atributo "origem" Os raios e pontos sao sempre removidos | ||
897 | + */ | ||
898 | + fechaJanela : function() { | ||
899 | + i3GeoMap.setOptions({ | ||
900 | + disableDoubleClickZoom : false | ||
901 | + }); | ||
902 | + i3GeoMap.setOptions({ | ||
903 | + draggableCursor : undefined | ||
904 | + }); | ||
905 | + var f = i3GEO.desenho.googlemaps.getFeaturesByAttribute( | ||
906 | + "origem", | ||
907 | + "medeDistancia"); | ||
908 | + if (f | ||
909 | + && f.length > 0) { | ||
812 | temp = window.confirm($trad("x94")); | 910 | temp = window.confirm($trad("x94")); |
813 | - if(temp){ | ||
814 | - i3GEO.desenho.googleearth.removePlacemark("divGeometriasTemp"); | ||
815 | - } | ||
816 | - i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.googleearth.clique()"); | ||
817 | - i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento.googleearth()"); | ||
818 | - i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()"); | ||
819 | - }, | ||
820 | - /** | ||
821 | - * Mostra a totalizacao das linhas ja digitalizadas | ||
822 | - */ | ||
823 | - mostraTotal: function(trecho,total){ | ||
824 | - var mostra = $i("mostradistancia_calculo"), | ||
825 | - texto; | ||
826 | - if (mostra){ | ||
827 | - texto = "<b>"+$trad("x96")+":</b> "+total.toFixed(3)+" km"+ | ||
828 | - "<br><b>"+$trad("x96")+":</b> "+(total*1000).toFixed(2)+" m"+ | ||
829 | - "<br>"+$trad("x25")+": "+i3GEO.calculo.metododistancia; | ||
830 | - mostra.innerHTML = texto; | ||
831 | - } | ||
832 | - }, | ||
833 | - /** | ||
834 | - * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse | ||
835 | - */ | ||
836 | - mostraParcial: function(trecho,parcial,direcao){ | ||
837 | - var mostra = $i("mostradistancia_calculo_movel"), | ||
838 | - texto; | ||
839 | - if (mostra){ | ||
840 | - texto = "<b>"+$trad("x95")+":</b> "+trecho.toFixed(3)+" km"+ | ||
841 | - "<br><b>"+$trad("x97")+":</b> "+(parcial + trecho).toFixed(3)+" km" + | ||
842 | - "<br><b>"+$trad("x23")+" (DMS):</b> "+direcao; | ||
843 | - mostra.innerHTML = texto; | 911 | + if (temp) { |
912 | + i3GEO.desenho.googlemaps.destroyFeatures(f); | ||
844 | } | 913 | } |
845 | } | 914 | } |
846 | - } | ||
847 | - }, | ||
848 | - /* | ||
849 | - i3GEO.analise.medeArea | ||
850 | - | ||
851 | - Ativa e controla a opcao de medicao de area. | ||
852 | - | ||
853 | - A medida e feita quando o usuario clica no mapa com esta opcao ativa | ||
854 | - | ||
855 | - Quando o botao e acionado, abre-se a janela que mostra o resultado da medida, o icone que segue o mouse e alterado. | ||
856 | - | ||
857 | - Para mostrar o resultado do calculo, e incluido um div especifico. | ||
858 | - */ | ||
859 | - medeArea:{ | ||
860 | - /** | ||
861 | - * Armazena os pontos clicados para realizar os calculos | ||
862 | - */ | ||
863 | - pontos: {}, | ||
864 | - /* | ||
865 | - Function: inicia | ||
866 | - | ||
867 | - Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessarios | ||
868 | - | ||
869 | - Sao registrados os eventos de clique sobre o mapa e fechamento da janela de resultados | 915 | + f = i3GEO.desenho.googlemaps.getFeaturesByAttribute( |
916 | + "origem", | ||
917 | + "medeDistanciaExcluir"); | ||
918 | + if (f | ||
919 | + && f.length > 0) { | ||
920 | + i3GEO.desenho.googlemaps.destroyFeatures(f); | ||
921 | + } | ||
922 | + }, | ||
923 | + /******************************************************************* | ||
924 | + * Mostra a totalizacao das linhas ja digitalizadas | ||
870 | */ | 925 | */ |
871 | - inicia: function(){ | ||
872 | - if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");} | ||
873 | - i3GEO.eventos.cliquePerm.desativa(); | ||
874 | - i3GEO.analise.medeArea.criaJanela(); | ||
875 | - i3GEO.analise.medeArea[i3GEO.Interface["ATUAL"]].inicia(); | 926 | + mostraTotal : function(trecho, total) { |
927 | + var mostra = $i("mostradistancia_calculo"), texto; | ||
928 | + if (mostra) { | ||
929 | + texto = "<b>" | ||
930 | + + $trad("x96") | ||
931 | + + ":</b> " | ||
932 | + + total.toFixed(3) | ||
933 | + + " km" | ||
934 | + + "<br><b>" | ||
935 | + + $trad("x96") | ||
936 | + + ":</b> " | ||
937 | + + (total * 1000).toFixed(2) | ||
938 | + + " m" | ||
939 | + + "<br>" | ||
940 | + + $trad("x25") | ||
941 | + + ": " | ||
942 | + + i3GEO.calculo.metododistancia; | ||
943 | + mostra.innerHTML = texto; | ||
944 | + } | ||
876 | }, | 945 | }, |
877 | - /* | ||
878 | - Cria a janela para mostrar os resultados da medicao | 946 | + /******************************************************************* |
947 | + * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao | ||
948 | + * do mouse | ||
879 | */ | 949 | */ |
880 | - criaJanela: function(){ | ||
881 | - var novoel,ins,imagemxy,janela; | ||
882 | - if (!$i("mostraarea")){ | ||
883 | - novoel = document.createElement("div"); | ||
884 | - novoel.id = "mostraarea"; | ||
885 | - 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>' + | ||
886 | - '<div class="bd" style="text-align:left;padding:3px;font-size:10px" >' + | ||
887 | - 'Estilo: '+i3GEO.desenho.caixaEstilos()+'<br>' + | ||
888 | - '<div style="text-align:left;padding:3px;font-size:10px" id="mostraarea_calculo" ></div>' + | ||
889 | - '<div style="text-align:left;padding:3px;font-size:10px" id="mostraarea_calculo_parcial" ></div>' + | ||
890 | - '</div>'; | ||
891 | - novoel.innerHTML = ins; | ||
892 | - novoel.style.borderColor="gray"; | ||
893 | - document.body.appendChild(novoel); | ||
894 | - janela = new YAHOO.widget.Panel("mostraarea", {width:"220px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); | ||
895 | - YAHOO.i3GEO.janela.manager.register(janela); | ||
896 | - janela.render(); | ||
897 | - YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeArea.fechaJanela); | 950 | + mostraParcial : function(trecho, parcial, direcao) { |
951 | + var mostra = $i("mostradistancia_calculo_movel"), texto; | ||
952 | + if (mostra) { | ||
953 | + texto = "<b>" | ||
954 | + + $trad("x95") | ||
955 | + + ":</b> " | ||
956 | + + trecho.toFixed(3) | ||
957 | + + " km" | ||
958 | + + "<br><b>" | ||
959 | + + $trad("x97") | ||
960 | + + ":</b> " | ||
961 | + + (parcial + trecho).toFixed(3) | ||
962 | + + " km" | ||
963 | + + "<br><b>" | ||
964 | + + $trad("x23") | ||
965 | + + " (DMS):</b> " | ||
966 | + + direcao; | ||
967 | + mostra.innerHTML = texto; | ||
898 | } | 968 | } |
899 | - else{ | ||
900 | - janela = YAHOO.i3GEO.janela.manager.find("mostraarea"); | 969 | + } |
970 | + }, | ||
971 | + googleearth : { | ||
972 | + pontosdistobj : { | ||
973 | + xpt : [], | ||
974 | + ypt : [], | ||
975 | + dist : [], | ||
976 | + distV : [], | ||
977 | + xtela : [], | ||
978 | + ytela : [], | ||
979 | + ximg : [], | ||
980 | + yimg : [], | ||
981 | + linhas : [], | ||
982 | + linhastemp : [] | ||
983 | + }, | ||
984 | + inicia : function() { | ||
985 | + if (i3GEO.eventos.MOUSECLIQUE.toString().search( | ||
986 | + "i3GEO.analise.medeDistancia.googleearth.clique()") < 0) { | ||
987 | + i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.googleearth.clique()"); | ||
988 | + } | ||
989 | + if (i3GEO.eventos.MOUSEMOVE.toString().search( | ||
990 | + "i3GEO.analise.medeDistancia.googleearth.movimento()") < 0) { | ||
991 | + i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.googleearth.movimento()"); | ||
992 | + } | ||
993 | + if (i3GEO.eventos.NAVEGAMAPA.toString().search( | ||
994 | + "i3GEO.analise.medeDistancia.fechaJanela()") < 0) { | ||
995 | + i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()"); | ||
901 | } | 996 | } |
902 | - janela.show(); | ||
903 | - imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); | ||
904 | - janela.moveTo(imagemxy[0]+150,imagemxy[1]); | ||
905 | }, | 997 | }, |
906 | - /* | ||
907 | - Function: fechaJanela | ||
908 | - | ||
909 | - Fecha a janela e os elementos graficos criados para a ferramenta de medicao | 998 | + clique : function() { |
999 | + var pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj, n, d, dd; | ||
1000 | + n = pontosdistobj.xpt.length; | ||
1001 | + pontosdistobj.xpt[n] = objposicaocursor.ddx; | ||
1002 | + pontosdistobj.ypt[n] = objposicaocursor.ddy; | ||
1003 | + pontosdistobj.xtela[n] = objposicaocursor.telax; | ||
1004 | + pontosdistobj.ytela[n] = objposicaocursor.telay; | ||
1005 | + pontosdistobj.ximg[n] = objposicaocursor.imgx; | ||
1006 | + pontosdistobj.yimg[n] = objposicaocursor.imgy; | ||
1007 | + pontosdistobj.dist[n] = 0; | ||
1008 | + if (n > 0) { | ||
1009 | + d = i3GEO.calculo.distancia( | ||
1010 | + pontosdistobj.xpt[n - 1], | ||
1011 | + pontosdistobj.ypt[n - 1], | ||
1012 | + objposicaocursor.ddx, | ||
1013 | + objposicaocursor.ddy); | ||
1014 | + pontosdistobj.dist[n] = d | ||
1015 | + + pontosdistobj.dist[n - 1]; | ||
1016 | + if ($i("pararraios") | ||
1017 | + && $i("pararraios").checked === true) { | ||
1018 | + dd = Math.sqrt(((Math.pow( | ||
1019 | + (pontosdistobj.xpt[n] - pontosdistobj.xpt[n - 1]), | ||
1020 | + 2)) + (Math.pow( | ||
1021 | + (pontosdistobj.ypt[n] - pontosdistobj.ypt[n - 1]), | ||
1022 | + 2)))); | ||
1023 | + i3GEO.desenho.googleearth.insereCirculo( | ||
1024 | + pontosdistobj.xpt[n], | ||
1025 | + pontosdistobj.ypt[n], | ||
1026 | + dd, | ||
1027 | + "", | ||
1028 | + "divGeometriasTemp"); | ||
1029 | + } | ||
1030 | + if ($i("parartextos") | ||
1031 | + && $i("parartextos").checked === true) { | ||
1032 | + i3GEO.desenho.googleearth.insereMarca( | ||
1033 | + d | ||
1034 | + + " km", | ||
1035 | + objposicaocursor.ddx, | ||
1036 | + objposicaocursor.ddy, | ||
1037 | + "", | ||
1038 | + "divGeometriasTemp"); | ||
1039 | + } | ||
1040 | + // cria a linha ligando os dois ultimos pontos | ||
1041 | + i3GEO.desenho.googleearth.insereLinha( | ||
1042 | + pontosdistobj.xpt[n - 1], | ||
1043 | + pontosdistobj.ypt[n - 1], | ||
1044 | + pontosdistobj.xpt[n], | ||
1045 | + pontosdistobj.ypt[n], | ||
1046 | + "", | ||
1047 | + "divGeometriasTemp"); | ||
1048 | + } | ||
1049 | + }, | ||
1050 | + movimento : function() { | ||
1051 | + var n, d, r, da, pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj, calculo = i3GEO.calculo; | ||
1052 | + n = pontosdistobj.xpt.length; | ||
1053 | + if (n > 0) { | ||
1054 | + d = calculo.distancia( | ||
1055 | + pontosdistobj.xpt[n - 1], | ||
1056 | + pontosdistobj.ypt[n - 1], | ||
1057 | + objposicaocursor.ddx, | ||
1058 | + objposicaocursor.ddy); | ||
1059 | + r = calculo.direcao( | ||
1060 | + pontosdistobj.xpt[n - 1], | ||
1061 | + pontosdistobj.ypt[n - 1], | ||
1062 | + objposicaocursor.ddx, | ||
1063 | + objposicaocursor.ddy); | ||
1064 | + r = calculo.dd2dms( | ||
1065 | + r, | ||
1066 | + r); | ||
1067 | + r = r[0]; | ||
1068 | + d = d * 1; | ||
1069 | + da = d | ||
1070 | + + pontosdistobj.dist[n - 1]; | ||
1071 | + i3GEO.analise.medeDistancia.googleearth.mostraParcial( | ||
1072 | + d, | ||
1073 | + da, | ||
1074 | + r); | ||
1075 | + } | ||
1076 | + }, | ||
1077 | + /******************************************************************* | ||
1078 | + * Fecha a janela que mostra os dados Pergunta ao usuario se os | ||
1079 | + * graficos devem ser removidos Os graficos sao marcados com o | ||
1080 | + * atributo "origem" Os raios e pontos sao sempre removidos | ||
910 | */ | 1081 | */ |
911 | - fechaJanela: function(){ | ||
912 | - var janela; | ||
913 | - i3GEO.eventos.cliquePerm.ativa(); | ||
914 | - janela = YAHOO.i3GEO.janela.manager.find("mostraarea"); | ||
915 | - if(janela){ | ||
916 | - YAHOO.i3GEO.janela.manager.remove(janela); | ||
917 | - janela.destroy(); | 1082 | + fechaJanela : function() { |
1083 | + temp = window.confirm($trad("x94")); | ||
1084 | + if (temp) { | ||
1085 | + i3GEO.desenho.googleearth.removePlacemark("divGeometriasTemp"); | ||
918 | } | 1086 | } |
919 | - i3GEO.barraDeBotoes.ativaIcone("pointer"); | ||
920 | - i3GEO.analise.medeArea[i3GEO.Interface["ATUAL"]].fechaJanela(); | 1087 | + i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.googleearth.clique()"); |
1088 | + i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento.googleearth()"); | ||
1089 | + i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()"); | ||
921 | }, | 1090 | }, |
922 | - /** | ||
923 | - * Funcoes especificas da interface openlayers | 1091 | + /******************************************************************* |
1092 | + * Mostra a totalizacao das linhas ja digitalizadas | ||
924 | */ | 1093 | */ |
925 | - openlayers:{ | ||
926 | - /** | ||
927 | - * Inicializa o processo | ||
928 | - * Cria a variavel para guardar os pontos | ||
929 | - * Executa a funcao de inicializacao do desenho, que cria o layer para receber os graficos | ||
930 | - */ | ||
931 | - inicia: function(){ | ||
932 | - var poligono, | ||
933 | - estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], | ||
934 | - controle = i3geoOL.getControlsBy("id","i3GeoMedeArea"); | ||
935 | - i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); | ||
936 | - i3GEO.analise.medeArea.pontos = { | ||
937 | - xpt: [], | ||
938 | - ypt: [], | ||
939 | - dist: [] | ||
940 | - }; | ||
941 | - if(controle.length === 0){ | ||
942 | - poligono = new OpenLayers.Control.DrawFeature( | ||
943 | - i3GEO.desenho.layergrafico, | ||
944 | - OpenLayers.Handler.Polygon, | ||
945 | - { | ||
946 | - autoActivate: true, | ||
947 | - id: "i3GeoMedeArea", | ||
948 | - type: OpenLayers.Control.TYPE_TOOL, | ||
949 | - callbacks:{ | ||
950 | - done: function(feature){ | ||
951 | - var f = new OpenLayers.Feature.Vector( | ||
952 | - feature, | ||
953 | - { | ||
954 | - origem: "medeArea" | ||
955 | - }, | ||
956 | - { | ||
957 | - graphicName: "square", | ||
958 | - pointRadius: 10, | ||
959 | - graphicOpacity: 1, | ||
960 | - strokeWidth: estilo.linewidth, | ||
961 | - strokeColor: estilo.linecolor, | ||
962 | - fillColor: estilo.fillcolor, | ||
963 | - fillOpacity: 0.3 | ||
964 | - } | ||
965 | - ); | ||
966 | - i3GEO.desenho.layergrafico.addFeatures([f]); | ||
967 | - if(i3GEO.Interface){ | ||
968 | - i3GEO.Interface.openlayers.sobeLayersGraficos(); | ||
969 | - } | ||
970 | - i3GEO.analise.medeArea.openlayers.mostraParcial(0,0,0,0); | ||
971 | - i3GEO.analise.medeArea.openlayers.inicia(); | ||
972 | - }, | ||
973 | - modify: function(point,poligono){ | ||
974 | - var n,x1,y1,x2,y2, | ||
975 | - trecho = 0, | ||
976 | - per = 0, | ||
977 | - direcao = 0, | ||
978 | - area = 0, | ||
979 | - proj = new OpenLayers.Projection("EPSG:4326"); | ||
980 | - n = i3GEO.analise.medeArea.pontos.ypt.length; | ||
981 | - if(n > 1){ | ||
982 | - x1 = i3GEO.analise.medeArea.pontos.xpt[n-1]; | ||
983 | - y1 = i3GEO.analise.medeArea.pontos.ypt[n-1]; | ||
984 | - x2 = point.x; | ||
985 | - y2 = point.y; | ||
986 | - //projeta | ||
987 | - if(i3GEO.Interface.openlayers.googleLike){ | ||
988 | - temp = i3GEO.util.extOSM2Geo(x1+" "+y1+" "+x2+" "+y2); | ||
989 | - temp = temp.split(" "); | ||
990 | - x1 = temp[0]; | ||
991 | - y1 = temp[1]; | ||
992 | - x2 = temp[2]; | ||
993 | - y2 = temp[3]; | ||
994 | - proj = new OpenLayers.Projection("EPSG:900913"); | ||
995 | - } | ||
996 | - trecho = i3GEO.calculo.distancia(x1,y1,x2,y2); | ||
997 | - direcao = i3GEO.calculo.direcao(x1,y1,x2,y2); | ||
998 | - direcao = i3GEO.calculo.dd2dms(direcao,direcao); | ||
999 | - direcao = direcao[0]; | ||
1000 | - per = i3GEO.analise.medeArea.openlayers.somaDist(); | ||
1001 | - //soma ate o primeiro ponto | ||
1002 | - x1 = i3GEO.analise.medeArea.pontos.xpt[0]; | ||
1003 | - y1 = i3GEO.analise.medeArea.pontos.ypt[0]; | ||
1004 | - //projeta | ||
1005 | - if(i3GEO.Interface.openlayers.googleLike){ | ||
1006 | - temp = i3GEO.util.extOSM2Geo(x1+" "+y1); | ||
1007 | - temp = temp.split(" "); | ||
1008 | - x1 = temp[0]; | ||
1009 | - y1 = temp[1]; | ||
1010 | - } | ||
1011 | - per += i3GEO.calculo.distancia(x1,y1,x2,y2); | ||
1012 | - area = poligono.geometry.getGeodesicArea(proj); | ||
1013 | - i3GEO.analise.medeArea.openlayers.mostraParcial(trecho,per,area,direcao); | ||
1014 | - } | 1094 | + mostraTotal : function(trecho, total) { |
1095 | + var mostra = $i("mostradistancia_calculo"), texto; | ||
1096 | + if (mostra) { | ||
1097 | + texto = "<b>" | ||
1098 | + + $trad("x96") | ||
1099 | + + ":</b> " | ||
1100 | + + total.toFixed(3) | ||
1101 | + + " km" | ||
1102 | + + "<br><b>" | ||
1103 | + + $trad("x96") | ||
1104 | + + ":</b> " | ||
1105 | + + (total * 1000).toFixed(2) | ||
1106 | + + " m" | ||
1107 | + + "<br>" | ||
1108 | + + $trad("x25") | ||
1109 | + + ": " | ||
1110 | + + i3GEO.calculo.metododistancia; | ||
1111 | + mostra.innerHTML = texto; | ||
1112 | + } | ||
1113 | + }, | ||
1114 | + /******************************************************************* | ||
1115 | + * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao | ||
1116 | + * do mouse | ||
1117 | + */ | ||
1118 | + mostraParcial : function(trecho, parcial, direcao) { | ||
1119 | + var mostra = $i("mostradistancia_calculo_movel"), texto; | ||
1120 | + if (mostra) { | ||
1121 | + texto = "<b>" | ||
1122 | + + $trad("x95") | ||
1123 | + + ":</b> " | ||
1124 | + + trecho.toFixed(3) | ||
1125 | + + " km" | ||
1126 | + + "<br><b>" | ||
1127 | + + $trad("x97") | ||
1128 | + + ":</b> " | ||
1129 | + + (parcial + trecho).toFixed(3) | ||
1130 | + + " km" | ||
1131 | + + "<br><b>" | ||
1132 | + + $trad("x23") | ||
1133 | + + " (DMS):</b> " | ||
1134 | + + direcao; | ||
1135 | + mostra.innerHTML = texto; | ||
1136 | + } | ||
1137 | + } | ||
1138 | + } | ||
1139 | + }, | ||
1140 | + /** | ||
1141 | + * Class: medeArea | ||
1142 | + * | ||
1143 | + * Ativa e controla a opão de medição de área. | ||
1144 | + * | ||
1145 | + * A medida é feita quando o usuário clica no mapa com esta opção ativa | ||
1146 | + * | ||
1147 | + * Quando o botão é acionado, abre-se a janela que mostra o resultado da | ||
1148 | + * medida, o ícone que segue o mouse é alterado. | ||
1149 | + * | ||
1150 | + * Para mostrar o resultado do cálculo, é incluido um div específico. | ||
1151 | + */ | ||
1152 | + medeArea : { | ||
1153 | + /*********************************************************************** | ||
1154 | + * Armazena os pontos clicados para realizar os calculos | ||
1155 | + */ | ||
1156 | + pontos : {}, | ||
1157 | + /** | ||
1158 | + * Function: inicia | ||
1159 | + * | ||
1160 | + * Inicia a operação de medição, abrindo a janela de resultados e | ||
1161 | + * criando os componentes necessários | ||
1162 | + * | ||
1163 | + * São registrados os eventos de clique sobre o mapa e fechamento da | ||
1164 | + * janela de resultados | ||
1165 | + */ | ||
1166 | + inicia : function() { | ||
1167 | + i3GEO.eventos.cliquePerm.desativa(); | ||
1168 | + i3GEO.analise.medeArea.criaJanela(); | ||
1169 | + i3GEO.analise.medeArea[i3GEO.Interface["ATUAL"]].inicia(); | ||
1170 | + }, | ||
1171 | + /** | ||
1172 | + * Cria a janela para mostrar os resultados da medicao | ||
1173 | + */ | ||
1174 | + criaJanela : function() { | ||
1175 | + var novoel, ins, imagemxy, janela; | ||
1176 | + if (!$i("mostraarea")) { | ||
1177 | + novoel = document.createElement("div"); | ||
1178 | + novoel.id = "mostraarea"; | ||
1179 | + ins = '<div class="hd" >Área aproximada <a class=ajuda_usuario target=_blank href="' | ||
1180 | + + i3GEO.configura.locaplic | ||
1181 | + + '"/ajuda_usuario.php?idcategoria=6&idajuda=51" > </a></div>' | ||
1182 | + + '<div class="bd" style="text-align:left;padding:3px;font-size:10px" >' | ||
1183 | + + 'Estilo: ' | ||
1184 | + + i3GEO.desenho.caixaEstilos() | ||
1185 | + + '<br>' | ||
1186 | + + '<div style="text-align:left;padding:3px;font-size:10px" id="mostraarea_calculo" ></div>' | ||
1187 | + + '<div style="text-align:left;padding:3px;font-size:10px" id="mostraarea_calculo_parcial" ></div>' | ||
1188 | + + '</div>'; | ||
1189 | + novoel.innerHTML = ins; | ||
1190 | + novoel.style.borderColor = "gray"; | ||
1191 | + document.body.appendChild(novoel); | ||
1192 | + janela = new YAHOO.widget.Panel( | ||
1193 | + "mostraarea", | ||
1194 | + { | ||
1195 | + width : "220px", | ||
1196 | + fixedcenter : false, | ||
1197 | + constraintoviewport : true, | ||
1198 | + underlay : "none", | ||
1199 | + close : true, | ||
1200 | + visible : true, | ||
1201 | + draggable : true, | ||
1202 | + modal : false | ||
1203 | + }); | ||
1204 | + YAHOO.i3GEO.janela.manager.register(janela); | ||
1205 | + janela.render(); | ||
1206 | + YAHOO.util.Event.addListener( | ||
1207 | + janela.close, | ||
1208 | + "click", | ||
1209 | + i3GEO.analise.medeArea.fechaJanela); | ||
1210 | + } else { | ||
1211 | + janela = YAHOO.i3GEO.janela.manager.find("mostraarea"); | ||
1212 | + } | ||
1213 | + janela.show(); | ||
1214 | + imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); | ||
1215 | + janela.moveTo( | ||
1216 | + imagemxy[0] + 150, | ||
1217 | + imagemxy[1]); | ||
1218 | + }, | ||
1219 | + /** | ||
1220 | + * Function: fechaJanela | ||
1221 | + * | ||
1222 | + * Fecha a janela e os elementos graficos criados para a ferramenta de | ||
1223 | + * medicao | ||
1224 | + */ | ||
1225 | + fechaJanela : function() { | ||
1226 | + var janela; | ||
1227 | + i3GEO.eventos.cliquePerm.ativa(); | ||
1228 | + janela = YAHOO.i3GEO.janela.manager.find("mostraarea"); | ||
1229 | + if (janela) { | ||
1230 | + YAHOO.i3GEO.janela.manager.remove(janela); | ||
1231 | + janela.destroy(); | ||
1232 | + } | ||
1233 | + i3GEO.barraDeBotoes.ativaIcone("pointer"); | ||
1234 | + i3GEO.analise.medeArea[i3GEO.Interface["ATUAL"]].fechaJanela(); | ||
1235 | + }, | ||
1236 | + /*********************************************************************** | ||
1237 | + * Funcoes especificas da interface openlayers | ||
1238 | + */ | ||
1239 | + openlayers : { | ||
1240 | + /******************************************************************* | ||
1241 | + * Inicializa o processo Cria a variavel para guardar os pontos | ||
1242 | + * Executa a funcao de inicializacao do desenho, que cria o layer | ||
1243 | + * para receber os graficos | ||
1244 | + */ | ||
1245 | + inicia : function() { | ||
1246 | + var poligono, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], controle = i3geoOL.getControlsBy( | ||
1247 | + "id", | ||
1248 | + "i3GeoMedeArea"); | ||
1249 | + i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); | ||
1250 | + i3GEO.analise.medeArea.pontos = { | ||
1251 | + xpt : [], | ||
1252 | + ypt : [], | ||
1253 | + dist : [] | ||
1254 | + }; | ||
1255 | + if (controle.length === 0) { | ||
1256 | + poligono = new OpenLayers.Control.DrawFeature( | ||
1257 | + i3GEO.desenho.layergrafico, | ||
1258 | + OpenLayers.Handler.Polygon, | ||
1259 | + { | ||
1260 | + autoActivate : true, | ||
1261 | + id : "i3GeoMedeArea", | ||
1262 | + type : OpenLayers.Control.TYPE_TOOL, | ||
1263 | + callbacks : { | ||
1264 | + done : function(feature) { | ||
1265 | + var f = new OpenLayers.Feature.Vector( | ||
1266 | + feature, | ||
1267 | + { | ||
1268 | + origem : "medeArea" | ||
1015 | }, | 1269 | }, |
1016 | - point: function(point,poligono){ | ||
1017 | - var n,x1,y1,x2,y2,temp,label, | ||
1018 | - //registra os pontos e calcula a distancia | ||
1019 | - per = 0, | ||
1020 | - trecho = 0, | ||
1021 | - area = 0, | ||
1022 | - proj = new OpenLayers.Projection("EPSG:4326"); | ||
1023 | - i3GEO.analise.medeArea.pontos.xpt.push(point.x); | ||
1024 | - i3GEO.analise.medeArea.pontos.ypt.push(point.y); | ||
1025 | - n = i3GEO.analise.medeArea.pontos.ypt.length; | ||
1026 | - if(n > 1){ | ||
1027 | - x1 = i3GEO.analise.medeArea.pontos.xpt[n-2]; | ||
1028 | - y1 = i3GEO.analise.medeArea.pontos.ypt[n-2]; | ||
1029 | - x2 = point.x; | ||
1030 | - y2 = point.y; | ||
1031 | - //projeta | ||
1032 | - if(i3GEO.Interface.openlayers.googleLike){ | ||
1033 | - temp = i3GEO.util.extOSM2Geo(x1+" "+y1+" "+x2+" "+y2); | ||
1034 | - temp = temp.split(" "); | ||
1035 | - x1 = temp[0]; | ||
1036 | - y1 = temp[1]; | ||
1037 | - x2 = temp[2]; | ||
1038 | - y2 = temp[3]; | ||
1039 | - proj = new OpenLayers.Projection("EPSG:900913"); | ||
1040 | - } | ||
1041 | - trecho = i3GEO.calculo.distancia(x1,y1,x2,y2); | ||
1042 | - i3GEO.analise.medeArea.pontos.dist.push(trecho); | ||
1043 | - per = i3GEO.analise.medeArea.openlayers.somaDist(); | ||
1044 | - //soma ate o primeiro ponto | ||
1045 | - x1 = i3GEO.analise.medeArea.pontos.xpt[0]; | ||
1046 | - y1 = i3GEO.analise.medeArea.pontos.ypt[0]; | ||
1047 | - //projeta | ||
1048 | - if(i3GEO.Interface.openlayers.googleLike){ | ||
1049 | - temp = i3GEO.util.extOSM2Geo(x1+" "+y1); | ||
1050 | - temp = temp.split(" "); | ||
1051 | - x1 = temp[0]; | ||
1052 | - y1 = temp[1]; | ||
1053 | - } | ||
1054 | - per += i3GEO.calculo.distancia(x1,y1,x2,y2); | ||
1055 | - //desenha ponto | ||
1056 | - //if($i("parartextos") && $i("parartextos").checked === true ){ | ||
1057 | - label = new OpenLayers.Feature.Vector( | ||
1058 | - new OpenLayers.Geometry.Point(point.x,point.y), | ||
1059 | - { | ||
1060 | - origem: "medeAreaExcluir" | ||
1061 | - }, | ||
1062 | - { | ||
1063 | - graphicName: "square", | ||
1064 | - pointRadius: 3, | ||
1065 | - strokeColor: "black", | ||
1066 | - graphicOpacity: 1, | ||
1067 | - strokeWidth: 1, | ||
1068 | - fillColor: "white", | ||
1069 | - label: trecho.toFixed(3), | ||
1070 | - labelAlign: "rb", | ||
1071 | - fontColor: estilo.textcolor, | ||
1072 | - fontSize: 12, | ||
1073 | - fontWeight: "bold" | ||
1074 | - } | ||
1075 | - ); | ||
1076 | - i3GEO.desenho.layergrafico.addFeatures([label]); | ||
1077 | - if(n > 2){ | ||
1078 | - area = poligono.getGeodesicArea(proj); | ||
1079 | - } | ||
1080 | - } | ||
1081 | - i3GEO.analise.medeArea.openlayers.mostraTotal(per,area); | 1270 | + { |
1271 | + graphicName : "square", | ||
1272 | + pointRadius : 10, | ||
1273 | + graphicOpacity : 1, | ||
1274 | + strokeWidth : estilo.linewidth, | ||
1275 | + strokeColor : estilo.linecolor, | ||
1276 | + fillColor : estilo.fillcolor, | ||
1277 | + fillOpacity : 0.3 | ||
1278 | + }); | ||
1279 | + i3GEO.desenho.layergrafico.addFeatures([ | ||
1280 | + f | ||
1281 | + ]); | ||
1282 | + if (i3GEO.Interface) { | ||
1283 | + i3GEO.Interface.openlayers.sobeLayersGraficos(); | ||
1284 | + } | ||
1285 | + i3GEO.analise.medeArea.openlayers.mostraParcial( | ||
1286 | + 0, | ||
1287 | + 0, | ||
1288 | + 0, | ||
1289 | + 0); | ||
1290 | + i3GEO.analise.medeArea.openlayers.inicia(); | ||
1291 | + }, | ||
1292 | + modify : function(point, poligono) { | ||
1293 | + var n, x1, y1, x2, y2, trecho = 0, per = 0, direcao = 0, area = 0, proj = new OpenLayers.Projection( | ||
1294 | + "EPSG:4326"); | ||
1295 | + n = i3GEO.analise.medeArea.pontos.ypt.length; | ||
1296 | + if (n > 1) { | ||
1297 | + x1 = i3GEO.analise.medeArea.pontos.xpt[n - 1]; | ||
1298 | + y1 = i3GEO.analise.medeArea.pontos.ypt[n - 1]; | ||
1299 | + x2 = point.x; | ||
1300 | + y2 = point.y; | ||
1301 | + // projeta | ||
1302 | + if (i3GEO.Interface.openlayers.googleLike) { | ||
1303 | + temp = i3GEO.util.extOSM2Geo(x1 | ||
1304 | + + " " | ||
1305 | + + y1 | ||
1306 | + + " " | ||
1307 | + + x2 | ||
1308 | + + " " | ||
1309 | + + y2); | ||
1310 | + temp = temp.split(" "); | ||
1311 | + x1 = temp[0]; | ||
1312 | + y1 = temp[1]; | ||
1313 | + x2 = temp[2]; | ||
1314 | + y2 = temp[3]; | ||
1315 | + proj = new OpenLayers.Projection( | ||
1316 | + "EPSG:900913"); | ||
1317 | + } | ||
1318 | + trecho = i3GEO.calculo.distancia( | ||
1319 | + x1, | ||
1320 | + y1, | ||
1321 | + x2, | ||
1322 | + y2); | ||
1323 | + direcao = i3GEO.calculo.direcao( | ||
1324 | + x1, | ||
1325 | + y1, | ||
1326 | + x2, | ||
1327 | + y2); | ||
1328 | + direcao = i3GEO.calculo.dd2dms( | ||
1329 | + direcao, | ||
1330 | + direcao); | ||
1331 | + direcao = direcao[0]; | ||
1332 | + per = i3GEO.analise.medeArea.openlayers.somaDist(); | ||
1333 | + // soma ate o primeiro ponto | ||
1334 | + x1 = i3GEO.analise.medeArea.pontos.xpt[0]; | ||
1335 | + y1 = i3GEO.analise.medeArea.pontos.ypt[0]; | ||
1336 | + // projeta | ||
1337 | + if (i3GEO.Interface.openlayers.googleLike) { | ||
1338 | + temp = i3GEO.util.extOSM2Geo(x1 | ||
1339 | + + " " | ||
1340 | + + y1); | ||
1341 | + temp = temp.split(" "); | ||
1342 | + x1 = temp[0]; | ||
1343 | + y1 = temp[1]; | ||
1344 | + } | ||
1345 | + per += i3GEO.calculo.distancia( | ||
1346 | + x1, | ||
1347 | + y1, | ||
1348 | + x2, | ||
1349 | + y2); | ||
1350 | + area = poligono.geometry.getGeodesicArea(proj); | ||
1351 | + i3GEO.analise.medeArea.openlayers.mostraParcial( | ||
1352 | + trecho, | ||
1353 | + per, | ||
1354 | + area, | ||
1355 | + direcao); | ||
1356 | + } | ||
1357 | + }, | ||
1358 | + point : function(point, poligono) { | ||
1359 | + var n, x1, y1, x2, y2, temp, label, | ||
1360 | + // registra os pontos e calcula a distancia | ||
1361 | + per = 0, trecho = 0, area = 0, proj = new OpenLayers.Projection( | ||
1362 | + "EPSG:4326"); | ||
1363 | + i3GEO.analise.medeArea.pontos.xpt.push(point.x); | ||
1364 | + i3GEO.analise.medeArea.pontos.ypt.push(point.y); | ||
1365 | + n = i3GEO.analise.medeArea.pontos.ypt.length; | ||
1366 | + if (n > 1) { | ||
1367 | + x1 = i3GEO.analise.medeArea.pontos.xpt[n - 2]; | ||
1368 | + y1 = i3GEO.analise.medeArea.pontos.ypt[n - 2]; | ||
1369 | + x2 = point.x; | ||
1370 | + y2 = point.y; | ||
1371 | + // projeta | ||
1372 | + if (i3GEO.Interface.openlayers.googleLike) { | ||
1373 | + temp = i3GEO.util.extOSM2Geo(x1 | ||
1374 | + + " " | ||
1375 | + + y1 | ||
1376 | + + " " | ||
1377 | + + x2 | ||
1378 | + + " " | ||
1379 | + + y2); | ||
1380 | + temp = temp.split(" "); | ||
1381 | + x1 = temp[0]; | ||
1382 | + y1 = temp[1]; | ||
1383 | + x2 = temp[2]; | ||
1384 | + y2 = temp[3]; | ||
1385 | + proj = new OpenLayers.Projection( | ||
1386 | + "EPSG:900913"); | ||
1387 | + } | ||
1388 | + trecho = i3GEO.calculo.distancia( | ||
1389 | + x1, | ||
1390 | + y1, | ||
1391 | + x2, | ||
1392 | + y2); | ||
1393 | + i3GEO.analise.medeArea.pontos.dist.push(trecho); | ||
1394 | + per = i3GEO.analise.medeArea.openlayers.somaDist(); | ||
1395 | + // soma ate o primeiro ponto | ||
1396 | + x1 = i3GEO.analise.medeArea.pontos.xpt[0]; | ||
1397 | + y1 = i3GEO.analise.medeArea.pontos.ypt[0]; | ||
1398 | + // projeta | ||
1399 | + if (i3GEO.Interface.openlayers.googleLike) { | ||
1400 | + temp = i3GEO.util.extOSM2Geo(x1 | ||
1401 | + + " " | ||
1402 | + + y1); | ||
1403 | + temp = temp.split(" "); | ||
1404 | + x1 = temp[0]; | ||
1405 | + y1 = temp[1]; | ||
1406 | + } | ||
1407 | + per += i3GEO.calculo.distancia( | ||
1408 | + x1, | ||
1409 | + y1, | ||
1410 | + x2, | ||
1411 | + y2); | ||
1412 | + // desenha ponto | ||
1413 | + // if($i("parartextos") && | ||
1414 | + // $i("parartextos").checked === true ){ | ||
1415 | + label = new OpenLayers.Feature.Vector( | ||
1416 | + new OpenLayers.Geometry.Point( | ||
1417 | + point.x, | ||
1418 | + point.y), | ||
1419 | + { | ||
1420 | + origem : "medeAreaExcluir" | ||
1421 | + }, | ||
1422 | + { | ||
1423 | + graphicName : "square", | ||
1424 | + pointRadius : 3, | ||
1425 | + strokeColor : "black", | ||
1426 | + graphicOpacity : 1, | ||
1427 | + strokeWidth : 1, | ||
1428 | + fillColor : "white", | ||
1429 | + label : trecho.toFixed(3), | ||
1430 | + labelAlign : "rb", | ||
1431 | + fontColor : estilo.textcolor, | ||
1432 | + fontSize : 12, | ||
1433 | + fontWeight : "bold" | ||
1434 | + }); | ||
1435 | + i3GEO.desenho.layergrafico.addFeatures([ | ||
1436 | + label | ||
1437 | + ]); | ||
1438 | + if (n > 2) { | ||
1439 | + area = poligono.getGeodesicArea(proj); | ||
1082 | } | 1440 | } |
1083 | } | 1441 | } |
1442 | + i3GEO.analise.medeArea.openlayers.mostraTotal( | ||
1443 | + per, | ||
1444 | + area); | ||
1084 | } | 1445 | } |
1085 | - ); | ||
1086 | - i3geoOL.addControl(poligono); | ||
1087 | - } | ||
1088 | - }, | ||
1089 | - /** | ||
1090 | - * Soma os valores de distancia guardados em pontos.dist | ||
1091 | - */ | ||
1092 | - somaDist: function(){ | ||
1093 | - var n,i, | ||
1094 | - total = 0; | ||
1095 | - n = i3GEO.analise.medeArea.pontos.dist.length; | ||
1096 | - for(i=0;i<n;i++){ | ||
1097 | - total += i3GEO.analise.medeArea.pontos.dist[i]; | ||
1098 | - } | ||
1099 | - return total; | ||
1100 | - }, | ||
1101 | - /** | ||
1102 | - * Fecha a janela que mostra os dados | ||
1103 | - * Pergunta ao usuario se os graficos devem ser removidos | ||
1104 | - * Os graficos sao marcados com o atributo "origem" | ||
1105 | - * Os raios e pontos sao sempre removidos | ||
1106 | - */ | ||
1107 | - fechaJanela: function(){ | ||
1108 | - var temp, | ||
1109 | - controle = i3geoOL.getControlsBy("id","i3GeoMedeArea"), | ||
1110 | - f = i3GEO.desenho.layergrafico.getFeaturesByAttribute("origem","medeArea"); | ||
1111 | - if(controle.length > 0){ | ||
1112 | - controle[0].deactivate(); | ||
1113 | - i3geoOL.removeControl(controle[0]); | ||
1114 | - } | ||
1115 | - if(f && f.length > 0){ | ||
1116 | - temp = window.confirm($trad("x94")); | ||
1117 | - if(temp){ | ||
1118 | - i3GEO.desenho.layergrafico.destroyFeatures(f); | ||
1119 | - } | ||
1120 | - } | ||
1121 | - f = i3GEO.desenho.layergrafico.getFeaturesByAttribute("origem","medeAreaExcluir"); | ||
1122 | - if(f && f.length > 0){ | 1446 | + } |
1447 | + }); | ||
1448 | + i3geoOL.addControl(poligono); | ||
1449 | + } | ||
1450 | + }, | ||
1451 | + /******************************************************************* | ||
1452 | + * Soma os valores de distancia guardados em pontos.dist | ||
1453 | + */ | ||
1454 | + somaDist : function() { | ||
1455 | + var n, i, total = 0; | ||
1456 | + n = i3GEO.analise.medeArea.pontos.dist.length; | ||
1457 | + for (i = 0; i < n; i++) { | ||
1458 | + total += i3GEO.analise.medeArea.pontos.dist[i]; | ||
1459 | + } | ||
1460 | + return total; | ||
1461 | + }, | ||
1462 | + /******************************************************************* | ||
1463 | + * Fecha a janela que mostra os dados Pergunta ao usuario se os | ||
1464 | + * graficos devem ser removidos Os graficos sao marcados com o | ||
1465 | + * atributo "origem" Os raios e pontos sao sempre removidos | ||
1466 | + */ | ||
1467 | + fechaJanela : function() { | ||
1468 | + var temp, controle = i3geoOL.getControlsBy( | ||
1469 | + "id", | ||
1470 | + "i3GeoMedeArea"), f = i3GEO.desenho.layergrafico.getFeaturesByAttribute( | ||
1471 | + "origem", | ||
1472 | + "medeArea"); | ||
1473 | + if (controle.length > 0) { | ||
1474 | + controle[0].deactivate(); | ||
1475 | + i3geoOL.removeControl(controle[0]); | ||
1476 | + } | ||
1477 | + if (f | ||
1478 | + && f.length > 0) { | ||
1479 | + temp = window.confirm($trad("x94")); | ||
1480 | + if (temp) { | ||
1123 | i3GEO.desenho.layergrafico.destroyFeatures(f); | 1481 | i3GEO.desenho.layergrafico.destroyFeatures(f); |
1124 | } | 1482 | } |
1125 | - }, | ||
1126 | - /** | ||
1127 | - * Mostra a totalizacao das linhas ja digitalizadas | ||
1128 | - */ | ||
1129 | - mostraTotal: function(per,area){ | ||
1130 | - var mostra = $i("mostraarea_calculo"), | ||
1131 | - texto; | ||
1132 | - if (mostra){ | ||
1133 | - texto = "<b>"+$trad("d21at")+":</b> "+(area/1000000).toFixed(3)+" km2"+ | ||
1134 | - "<br><b>"+$trad("d21at")+":</b> "+(area/10000).toFixed(2)+" ha"+ | ||
1135 | - "<br><b>"+$trad("x98")+":</b> "+(per).toFixed(2)+" km"+ | ||
1136 | - "<br>"+$trad("x25")+": "+i3GEO.calculo.metododistancia; | ||
1137 | - mostra.innerHTML = texto; | ||
1138 | - } | ||
1139 | - }, | ||
1140 | - /** | ||
1141 | - * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse | ||
1142 | - */ | ||
1143 | - mostraParcial: function(trecho,per,area,direcao){ | ||
1144 | - var mostra = $i("mostraarea_calculo_parcial"), | ||
1145 | - texto; | ||
1146 | - if (mostra){ | ||
1147 | - texto = "<b>"+$trad("d21at")+":</b> "+(area/1000000).toFixed(3)+" km2"+ | ||
1148 | - "<br><b>"+$trad("d21at")+":</b> "+(area/10000).toFixed(2)+" ha"+ | ||
1149 | - "<br><b>"+$trad("x95")+":</b> "+trecho.toFixed(3)+" km"+ | ||
1150 | - "<br><b>"+$trad("x98")+":</b> "+(per).toFixed(3)+" km" + | ||
1151 | - "<br><b>"+$trad("x23")+" (DMS):</b> "+direcao; | ||
1152 | - mostra.innerHTML = texto; | ||
1153 | - } | 1483 | + } |
1484 | + f = i3GEO.desenho.layergrafico.getFeaturesByAttribute( | ||
1485 | + "origem", | ||
1486 | + "medeAreaExcluir"); | ||
1487 | + if (f | ||
1488 | + && f.length > 0) { | ||
1489 | + i3GEO.desenho.layergrafico.destroyFeatures(f); | ||
1154 | } | 1490 | } |
1155 | }, | 1491 | }, |
1156 | - googlemaps: { | ||
1157 | - /** | ||
1158 | - * Inicializa o processo | ||
1159 | - * Cria a variavel para guardar os pontos | ||
1160 | - * Executa a funcao de inicializacao do desenho, que cria o layer para receber os graficos | ||
1161 | - */ | ||
1162 | - inicia: function(){ | ||
1163 | - if(!google.maps.geometry){ | ||
1164 | - alert($trad("x99")); | ||
1165 | - return; | ||
1166 | - } | ||
1167 | - i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); | ||
1168 | - i3GeoMap.setOptions({disableDoubleClickZoom:true}); | ||
1169 | - i3GeoMap.setOptions({draggableCursor:'crosshair'}); | ||
1170 | - var evtdblclick = null, | ||
1171 | - evtclick = null, | ||
1172 | - evtmousemove = null, | ||
1173 | - pontos = { | ||
1174 | - xpt: [], | ||
1175 | - ypt: [], | ||
1176 | - dist: [], | ||
1177 | - mvcLine: new google.maps.MVCArray(), | ||
1178 | - mvcMarkers: new google.maps.MVCArray(), | ||
1179 | - line: null, | ||
1180 | - polygon: null | ||
1181 | - }, | ||
1182 | - termina = function(){ | ||
1183 | - google.maps.event.removeListener(evtdblclick); | ||
1184 | - google.maps.event.removeListener(evtclick); | ||
1185 | - google.maps.event.removeListener(evtmousemove); | ||
1186 | - pontos.line.setOptions({clickable: true}); | ||
1187 | - google.maps.event.addListener(pontos.line, 'click', function(shape) { | ||
1188 | - if(shape.setEditable){ | 1492 | + /******************************************************************* |
1493 | + * Mostra a totalizacao das linhas ja digitalizadas | ||
1494 | + */ | ||
1495 | + mostraTotal : function(per, area) { | ||
1496 | + var mostra = $i("mostraarea_calculo"), texto; | ||
1497 | + if (mostra) { | ||
1498 | + texto = "<b>" | ||
1499 | + + $trad("d21at") | ||
1500 | + + ":</b> " | ||
1501 | + + (area / 1000000).toFixed(3) | ||
1502 | + + " km2" | ||
1503 | + + "<br><b>" | ||
1504 | + + $trad("d21at") | ||
1505 | + + ":</b> " | ||
1506 | + + (area / 10000).toFixed(2) | ||
1507 | + + " ha" | ||
1508 | + + "<br><b>" | ||
1509 | + + $trad("x98") | ||
1510 | + + ":</b> " | ||
1511 | + + (per).toFixed(2) | ||
1512 | + + " km" | ||
1513 | + + "<br>" | ||
1514 | + + $trad("x25") | ||
1515 | + + ": " | ||
1516 | + + i3GEO.calculo.metododistancia; | ||
1517 | + mostra.innerHTML = texto; | ||
1518 | + } | ||
1519 | + }, | ||
1520 | + /******************************************************************* | ||
1521 | + * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao | ||
1522 | + * do mouse | ||
1523 | + */ | ||
1524 | + mostraParcial : function(trecho, per, area, direcao) { | ||
1525 | + var mostra = $i("mostraarea_calculo_parcial"), texto; | ||
1526 | + if (mostra) { | ||
1527 | + texto = "<b>" | ||
1528 | + + $trad("d21at") | ||
1529 | + + ":</b> " | ||
1530 | + + (area / 1000000).toFixed(3) | ||
1531 | + + " km2" | ||
1532 | + + "<br><b>" | ||
1533 | + + $trad("d21at") | ||
1534 | + + ":</b> " | ||
1535 | + + (area / 10000).toFixed(2) | ||
1536 | + + " ha" | ||
1537 | + + "<br><b>" | ||
1538 | + + $trad("x95") | ||
1539 | + + ":</b> " | ||
1540 | + + trecho.toFixed(3) | ||
1541 | + + " km" | ||
1542 | + + "<br><b>" | ||
1543 | + + $trad("x98") | ||
1544 | + + ":</b> " | ||
1545 | + + (per).toFixed(3) | ||
1546 | + + " km" | ||
1547 | + + "<br><b>" | ||
1548 | + + $trad("x23") | ||
1549 | + + " (DMS):</b> " | ||
1550 | + + direcao; | ||
1551 | + mostra.innerHTML = texto; | ||
1552 | + } | ||
1553 | + } | ||
1554 | + }, | ||
1555 | + googlemaps : { | ||
1556 | + /******************************************************************* | ||
1557 | + * Inicializa o processo Cria a variavel para guardar os pontos | ||
1558 | + * Executa a funcao de inicializacao do desenho, que cria o layer | ||
1559 | + * para receber os graficos | ||
1560 | + */ | ||
1561 | + inicia : function() { | ||
1562 | + if (!google.maps.geometry) { | ||
1563 | + alert($trad("x99")); | ||
1564 | + return; | ||
1565 | + } | ||
1566 | + i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); | ||
1567 | + i3GeoMap.setOptions({ | ||
1568 | + disableDoubleClickZoom : true | ||
1569 | + }); | ||
1570 | + i3GeoMap.setOptions({ | ||
1571 | + draggableCursor : 'crosshair' | ||
1572 | + }); | ||
1573 | + var evtdblclick = null, evtclick = null, evtmousemove = null, pontos = { | ||
1574 | + xpt : [], | ||
1575 | + ypt : [], | ||
1576 | + dist : [], | ||
1577 | + mvcLine : new google.maps.MVCArray(), | ||
1578 | + mvcMarkers : new google.maps.MVCArray(), | ||
1579 | + line : null, | ||
1580 | + polygon : null | ||
1581 | + }, termina = function() { | ||
1582 | + google.maps.event.removeListener(evtdblclick); | ||
1583 | + google.maps.event.removeListener(evtclick); | ||
1584 | + google.maps.event.removeListener(evtmousemove); | ||
1585 | + pontos.line.setOptions({ | ||
1586 | + clickable : true | ||
1587 | + }); | ||
1588 | + google.maps.event.addListener( | ||
1589 | + pontos.line, | ||
1590 | + 'click', | ||
1591 | + function(shape) { | ||
1592 | + if (shape.setEditable) { | ||
1189 | shape.setEditable(!shape.editable); | 1593 | shape.setEditable(!shape.editable); |
1190 | } | 1594 | } |
1191 | }); | 1595 | }); |
1192 | - if(pontos){ | ||
1193 | - i3GEO.desenho.googlemaps.shapes.push(pontos.mvcLine); | ||
1194 | - i3GEO.desenho.googlemaps.shapes.push(pontos.line); | ||
1195 | - pontos = null; | ||
1196 | - } | ||
1197 | - }; | ||
1198 | - evtclick = google.maps.event.addListener(i3GeoMap, "click", function(evt) { | ||
1199 | - var area=0,per; | ||
1200 | - // When the map is clicked, pass the LatLng obect to the measureAdd function | 1596 | + if (pontos) { |
1597 | + i3GEO.desenho.googlemaps.shapes.push(pontos.mvcLine); | ||
1598 | + i3GEO.desenho.googlemaps.shapes.push(pontos.line); | ||
1599 | + pontos = null; | ||
1600 | + } | ||
1601 | + }; | ||
1602 | + evtclick = google.maps.event.addListener( | ||
1603 | + i3GeoMap, | ||
1604 | + "click", | ||
1605 | + function(evt) { | ||
1606 | + var area = 0, per; | ||
1607 | + // When the map is clicked, pass the LatLng obect to the | ||
1608 | + // measureAdd function | ||
1201 | pontos.mvcLine.push(evt.latLng); | 1609 | pontos.mvcLine.push(evt.latLng); |
1202 | pontos.xpt.push(evt.latLng.lng()); | 1610 | pontos.xpt.push(evt.latLng.lng()); |
1203 | pontos.ypt.push(evt.latLng.lat()); | 1611 | pontos.ypt.push(evt.latLng.lat()); |
1204 | - //desenha um circulo | 1612 | + // desenha um circulo |
1205 | if (pontos.mvcLine.getLength() > 0) { | 1613 | if (pontos.mvcLine.getLength() > 0) { |
1206 | per = google.maps.geometry.spherical.computeLength(pontos.mvcLine); | 1614 | per = google.maps.geometry.spherical.computeLength(pontos.mvcLine); |
1207 | area = google.maps.geometry.spherical.computeArea(pontos.mvcLine); | 1615 | area = google.maps.geometry.spherical.computeArea(pontos.mvcLine); |
1208 | - i3GEO.analise.medeArea.googlemaps.mostraTotal(per,area); | 1616 | + i3GEO.analise.medeArea.googlemaps.mostraTotal( |
1617 | + per, | ||
1618 | + area); | ||
1209 | } | 1619 | } |
1210 | - //desenha uma marca no ponto | ||
1211 | - i3GEO.desenho.googlemaps.shapes.push( | ||
1212 | - new google.maps.Marker({ | ||
1213 | - map: i3GeoMap, | ||
1214 | - fillOpacity: 0, | ||
1215 | - clickable: false, | ||
1216 | - position:evt.latLng, | ||
1217 | - icon: { | ||
1218 | - path: google.maps.SymbolPath.CIRCLE, | ||
1219 | - scale: 2.5, | ||
1220 | - strokeColor: "#ffffff" | ||
1221 | - }, | ||
1222 | - origem: "medeAreaExcluir" | ||
1223 | - }) | ||
1224 | - ); | ||
1225 | - //mais um ponto para criar uma linha movel | 1620 | + // desenha uma marca no ponto |
1621 | + i3GEO.desenho.googlemaps.shapes.push(new google.maps.Marker( | ||
1622 | + { | ||
1623 | + map : i3GeoMap, | ||
1624 | + fillOpacity : 0, | ||
1625 | + clickable : false, | ||
1626 | + position : evt.latLng, | ||
1627 | + icon : { | ||
1628 | + path : google.maps.SymbolPath.CIRCLE, | ||
1629 | + scale : 2.5, | ||
1630 | + strokeColor : "#ffffff" | ||
1631 | + }, | ||
1632 | + origem : "medeAreaExcluir" | ||
1633 | + })); | ||
1634 | + // mais um ponto para criar uma linha movel | ||
1226 | pontos.mvcLine.push(evt.latLng); | 1635 | pontos.mvcLine.push(evt.latLng); |
1227 | }); | 1636 | }); |
1228 | - evtmousemove = google.maps.event.addListener(i3GeoMap, "mousemove", function(evt) { | ||
1229 | - if(!$i("mostraarea_calculo")){ | 1637 | + evtmousemove = google.maps.event.addListener( |
1638 | + i3GeoMap, | ||
1639 | + "mousemove", | ||
1640 | + function(evt) { | ||
1641 | + if (!$i("mostraarea_calculo")) { | ||
1230 | termina.call(); | 1642 | termina.call(); |
1231 | return; | 1643 | return; |
1232 | } | 1644 | } |
1233 | - var x1,y1,x2,y2,direcao,per,area, | ||
1234 | - estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], | ||
1235 | - n = pontos.xpt.length; | 1645 | + var x1, y1, x2, y2, direcao, per, area, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], n = pontos.xpt.length; |
1236 | 1646 | ||
1237 | // If there is more than one vertex on the line | 1647 | // If there is more than one vertex on the line |
1238 | if (pontos.mvcLine.getLength() > 0) { | 1648 | if (pontos.mvcLine.getLength() > 0) { |
1239 | // If the line hasn't been created yet | 1649 | // If the line hasn't been created yet |
1240 | if (!pontos.line) { | 1650 | if (!pontos.line) { |
1241 | // Create the line (google.maps.Polyline) | 1651 | // Create the line (google.maps.Polyline) |
1242 | - pontos.line = new google.maps.Polygon({ | ||
1243 | - map: i3GeoMap, | ||
1244 | - clickable: false, | ||
1245 | - strokeColor: estilo.linecolor, | ||
1246 | - strokeOpacity: 1, | ||
1247 | - strokeWeight: estilo.linewidth, | ||
1248 | - path:pontos.mvcLine, | ||
1249 | - origem: "medeArea" | ||
1250 | - }); | 1652 | + pontos.line = new google.maps.Polygon( |
1653 | + { | ||
1654 | + map : i3GeoMap, | ||
1655 | + clickable : false, | ||
1656 | + strokeColor : estilo.linecolor, | ||
1657 | + strokeOpacity : 1, | ||
1658 | + strokeWeight : estilo.linewidth, | ||
1659 | + path : pontos.mvcLine, | ||
1660 | + origem : "medeArea" | ||
1661 | + }); | ||
1251 | } | 1662 | } |
1252 | pontos.mvcLine.pop(); | 1663 | pontos.mvcLine.pop(); |
1253 | pontos.mvcLine.push(evt.latLng); | 1664 | pontos.mvcLine.push(evt.latLng); |
1254 | per = google.maps.geometry.spherical.computeLength(pontos.mvcLine); | 1665 | per = google.maps.geometry.spherical.computeLength(pontos.mvcLine); |
1255 | - x1 = pontos.xpt[n-1]; | ||
1256 | - y1 = pontos.ypt[n-1]; | 1666 | + x1 = pontos.xpt[n - 1]; |
1667 | + y1 = pontos.ypt[n - 1]; | ||
1257 | x2 = evt.latLng.lng(); | 1668 | x2 = evt.latLng.lng(); |
1258 | y2 = evt.latLng.lat(); | 1669 | y2 = evt.latLng.lat(); |
1259 | - trecho = i3GEO.calculo.distancia(x1,y1,x2,y2); | ||
1260 | - direcao = i3GEO.calculo.direcao(x1,y1,x2,y2); | ||
1261 | - direcao = i3GEO.calculo.dd2dms(direcao,direcao); | 1670 | + trecho = i3GEO.calculo.distancia( |
1671 | + x1, | ||
1672 | + y1, | ||
1673 | + x2, | ||
1674 | + y2); | ||
1675 | + direcao = i3GEO.calculo.direcao( | ||
1676 | + x1, | ||
1677 | + y1, | ||
1678 | + x2, | ||
1679 | + y2); | ||
1680 | + direcao = i3GEO.calculo.dd2dms( | ||
1681 | + direcao, | ||
1682 | + direcao); | ||
1262 | direcao = direcao[0]; | 1683 | direcao = direcao[0]; |
1263 | area = google.maps.geometry.spherical.computeArea(pontos.mvcLine); | 1684 | area = google.maps.geometry.spherical.computeArea(pontos.mvcLine); |
1264 | - i3GEO.analise.medeArea.googlemaps.mostraParcial(trecho,per,area,direcao); | 1685 | + i3GEO.analise.medeArea.googlemaps.mostraParcial( |
1686 | + trecho, | ||
1687 | + per, | ||
1688 | + area, | ||
1689 | + direcao); | ||
1265 | } | 1690 | } |
1266 | }); | 1691 | }); |
1267 | - evtdblclick = google.maps.event.addListener(i3GeoMap, "dblclick", function(evt) { | ||
1268 | - pontos.mvcLine.push(new google.maps.LatLng(pontos.ypt[0],pontos.xpt[0])); | ||
1269 | - var per = google.maps.geometry.spherical.computeLength(pontos.mvcLine), | ||
1270 | - area = google.maps.geometry.spherical.computeArea(pontos.mvcLine); | ||
1271 | - i3GEO.analise.medeArea.googlemaps.mostraTotal(per,area); | 1692 | + evtdblclick = google.maps.event.addListener( |
1693 | + i3GeoMap, | ||
1694 | + "dblclick", | ||
1695 | + function(evt) { | ||
1696 | + pontos.mvcLine.push(new google.maps.LatLng( | ||
1697 | + pontos.ypt[0], | ||
1698 | + pontos.xpt[0])); | ||
1699 | + var per = google.maps.geometry.spherical.computeLength(pontos.mvcLine), area = google.maps.geometry.spherical.computeArea(pontos.mvcLine); | ||
1700 | + i3GEO.analise.medeArea.googlemaps.mostraTotal( | ||
1701 | + per, | ||
1702 | + area); | ||
1272 | termina.call(); | 1703 | termina.call(); |
1273 | }); | 1704 | }); |
1274 | - }, | ||
1275 | - /** | ||
1276 | - * Soma os valores de distancia guardados em pontos.dist | ||
1277 | - */ | ||
1278 | - somaDist: function(pontos){ | ||
1279 | - var n,i, | ||
1280 | - total = 0; | ||
1281 | - n = pontos.dist.length; | ||
1282 | - for(i=0;i<n;i++){ | ||
1283 | - total += pontos.dist[i]; | ||
1284 | - } | ||
1285 | - return total; | ||
1286 | - }, | ||
1287 | - /** | ||
1288 | - * Fecha a janela que mostra os dados | ||
1289 | - * Pergunta ao usuario se os graficos devem ser removidos | ||
1290 | - * Os graficos sao marcados com o atributo "origem" | ||
1291 | - * Os raios e pontos sao sempre removidos | ||
1292 | - */ | ||
1293 | - fechaJanela: function(){ | ||
1294 | - i3GeoMap.setOptions({disableDoubleClickZoom:false}); | ||
1295 | - i3GeoMap.setOptions({draggableCursor:undefined}); | ||
1296 | - var f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","medeArea"); | ||
1297 | - if(f && f.length > 0){ | ||
1298 | - temp = window.confirm($trad("x94")); | ||
1299 | - if(temp){ | ||
1300 | - i3GEO.desenho.googlemaps.destroyFeatures(f); | ||
1301 | - } | ||
1302 | - } | ||
1303 | - f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","medeAreaExcluir"); | ||
1304 | - if(f && f.length > 0){ | 1705 | + }, |
1706 | + /*** | ||
1707 | + * Soma os valores de distancia guardados em pontos.dist | ||
1708 | + */ | ||
1709 | + somaDist : function(pontos) { | ||
1710 | + var n, i, total = 0; | ||
1711 | + n = pontos.dist.length; | ||
1712 | + for (i = 0; i < n; i++) { | ||
1713 | + total += pontos.dist[i]; | ||
1714 | + } | ||
1715 | + return total; | ||
1716 | + }, | ||
1717 | + /*** | ||
1718 | + * Fecha a janela que mostra os dados | ||
1719 | + * Pergunta ao usuario se os graficos devem ser removidos | ||
1720 | + * Os graficos sao marcados com o atributo "origem" | ||
1721 | + * Os raios e pontos sao sempre removidos | ||
1722 | + */ | ||
1723 | + fechaJanela : function() { | ||
1724 | + i3GeoMap.setOptions({ | ||
1725 | + disableDoubleClickZoom : false | ||
1726 | + }); | ||
1727 | + i3GeoMap.setOptions({ | ||
1728 | + draggableCursor : undefined | ||
1729 | + }); | ||
1730 | + var f = i3GEO.desenho.googlemaps.getFeaturesByAttribute( | ||
1731 | + "origem", | ||
1732 | + "medeArea"); | ||
1733 | + if (f | ||
1734 | + && f.length > 0) { | ||
1735 | + temp = window.confirm($trad("x94")); | ||
1736 | + if (temp) { | ||
1305 | i3GEO.desenho.googlemaps.destroyFeatures(f); | 1737 | i3GEO.desenho.googlemaps.destroyFeatures(f); |
1306 | } | 1738 | } |
1307 | - }, | ||
1308 | - /** | ||
1309 | - * Mostra a totalizacao das linhas ja digitalizadas | ||
1310 | - */ | ||
1311 | - mostraTotal: function(per,area){ | ||
1312 | - var mostra = $i("mostraarea_calculo"), | ||
1313 | - texto; | ||
1314 | - if (mostra){ | ||
1315 | - texto = "<b>"+$trad("d21at")+":</b> "+(area/1000000).toFixed(3)+" km2"+ | ||
1316 | - "<br><b>"+$trad("d21at")+":</b> "+(area/10000).toFixed(2)+" ha"+ | ||
1317 | - "<br><b>"+$trad("x98")+":</b> "+(per).toFixed(2)+" km"+ | ||
1318 | - "<br>"+$trad("x25")+": "+i3GEO.calculo.metododistancia; | ||
1319 | - mostra.innerHTML = texto; | ||
1320 | - } | ||
1321 | - }, | ||
1322 | - /** | ||
1323 | - * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse | ||
1324 | - */ | ||
1325 | - mostraParcial: function(trecho,per,area,direcao){ | ||
1326 | - var mostra = $i("mostraarea_calculo_parcial"), | ||
1327 | - texto; | ||
1328 | - if (mostra){ | ||
1329 | - texto = "<b>"+$trad("d21at")+":</b> "+(area/1000000).toFixed(3)+" km2"+ | ||
1330 | - "<br><b>"+$trad("d21at")+":</b> "+(area/10000).toFixed(2)+" ha"+ | ||
1331 | - "<br><b>"+$trad("x95")+":</b> "+trecho.toFixed(3)+" km"+ | ||
1332 | - "<br><b>"+$trad("x98")+":</b> "+(per).toFixed(3)+" km" + | ||
1333 | - "<br><b>"+$trad("x23")+" (DMS):</b> "+direcao; | ||
1334 | - mostra.innerHTML = texto; | ||
1335 | - } | 1739 | + } |
1740 | + f = i3GEO.desenho.googlemaps.getFeaturesByAttribute( | ||
1741 | + "origem", | ||
1742 | + "medeAreaExcluir"); | ||
1743 | + if (f | ||
1744 | + && f.length > 0) { | ||
1745 | + i3GEO.desenho.googlemaps.destroyFeatures(f); | ||
1746 | + } | ||
1747 | + }, | ||
1748 | + /** | ||
1749 | + * Mostra a totalizacao das linhas ja digitalizadas | ||
1750 | + */ | ||
1751 | + mostraTotal : function(per, area) { | ||
1752 | + var mostra = $i("mostraarea_calculo"), texto; | ||
1753 | + if (mostra) { | ||
1754 | + texto = "<b>" | ||
1755 | + + $trad("d21at") | ||
1756 | + + ":</b> " | ||
1757 | + + (area / 1000000).toFixed(3) | ||
1758 | + + " km2" | ||
1759 | + + "<br><b>" | ||
1760 | + + $trad("d21at") | ||
1761 | + + ":</b> " | ||
1762 | + + (area / 10000).toFixed(2) | ||
1763 | + + " ha" | ||
1764 | + + "<br><b>" | ||
1765 | + + $trad("x98") | ||
1766 | + + ":</b> " | ||
1767 | + + (per).toFixed(2) | ||
1768 | + + " km" | ||
1769 | + + "<br>" | ||
1770 | + + $trad("x25") | ||
1771 | + + ": " | ||
1772 | + + i3GEO.calculo.metododistancia; | ||
1773 | + mostra.innerHTML = texto; | ||
1336 | } | 1774 | } |
1337 | }, | 1775 | }, |
1338 | - googleearth: { | 1776 | + /*************************************************************** |
1777 | + * Mostra o valor do trecho entre o ultimo ponto clicado e a | ||
1778 | + * posicao do mouse | ||
1779 | + */ | ||
1780 | + mostraParcial : function(trecho, per, area, direcao) { | ||
1781 | + var mostra = $i("mostraarea_calculo_parcial"), texto; | ||
1782 | + if (mostra) { | ||
1783 | + texto = "<b>" | ||
1784 | + + $trad("d21at") | ||
1785 | + + ":</b> " | ||
1786 | + + (area / 1000000).toFixed(3) | ||
1787 | + + " km2" | ||
1788 | + + "<br><b>" | ||
1789 | + + $trad("d21at") | ||
1790 | + + ":</b> " | ||
1791 | + + (area / 10000).toFixed(2) | ||
1792 | + + " ha" | ||
1793 | + + "<br><b>" | ||
1794 | + + $trad("x95") | ||
1795 | + + ":</b> " | ||
1796 | + + trecho.toFixed(3) | ||
1797 | + + " km" | ||
1798 | + + "<br><b>" | ||
1799 | + + $trad("x98") | ||
1800 | + + ":</b> " | ||
1801 | + + (per).toFixed(3) | ||
1802 | + + " km" | ||
1803 | + + "<br><b>" | ||
1804 | + + $trad("x23") | ||
1805 | + + " (DMS):</b> " | ||
1806 | + + direcao; | ||
1807 | + mostra.innerHTML = texto; | ||
1808 | + } | ||
1339 | } | 1809 | } |
1340 | - } | 1810 | + }, |
1811 | + googleearth : {} | ||
1812 | + } | ||
1341 | }; | 1813 | }; |