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