Commit ec18d2cdc3dea8f0d1d92d1a6b5a1a4ae00aa5b3
1 parent
844ba2b6
Exists in
master
and in
7 other branches
Inclusão da biblioteca Proj4 e incorporação na ferramenta de apresentação de coordenadas
Showing
5 changed files
with
504 additions
and
80 deletions
Show diff stats
classesjs/classe_coordenadas.js
| ... | ... | @@ -37,7 +37,125 @@ Inclui elementos especiais no mapa para apresentação de coordenadas |
| 37 | 37 | */ |
| 38 | 38 | i3GEO.coordenadas = { |
| 39 | 39 | /* |
| 40 | - Propriedade: PARAMETROS | |
| 40 | + Propriedade: formato | |
| 41 | + | |
| 42 | + Formato de apresentação das coordenadas | |
| 43 | + | |
| 44 | + Type: | |
| 45 | + {string} | |
| 46 | + | |
| 47 | + Default: | |
| 48 | + "lista" | |
| 49 | + | |
| 50 | + Valores: | |
| 51 | + | |
| 52 | + bloco - mostra apenas um dos tipos e uma caixa de seleção | |
| 53 | + | |
| 54 | + separado - mostra todos os tipos em lugares diferentes conforme o valor de idhtml | |
| 55 | + | |
| 56 | + lista - mostra cada tipo em um lugar diferente conforme o valor de idhtml | |
| 57 | + */ | |
| 58 | + formato: "bloco", //bloco,separado,lista,janela | |
| 59 | + /* | |
| 60 | + Propriedade: padrao | |
| 61 | + | |
| 62 | + Indica qual tipo de coordenada é mostrado como padrão. Deve existir em i3GEO.coordenadas.config | |
| 63 | + | |
| 64 | + Default: | |
| 65 | + "geoProj" | |
| 66 | + */ | |
| 67 | + padrao: "geoProj", //so faz sentido se formato for bloco | |
| 68 | + /* | |
| 69 | + Propriedade: defOrigem | |
| 70 | + | |
| 71 | + CRS que define a projeção original das coordenadas capturadas na tela. Deve ser o mesmo | |
| 72 | + parâmetro definido no mapfile de inicialização do mapa (veja em i3geo/aplicmap/geral1.map ou geral1windows.map) | |
| 73 | + | |
| 74 | + Default: | |
| 75 | + "+proj=longlat +ellps=GRS67 +no_defs" | |
| 76 | + */ | |
| 77 | + defOrigem: "+proj=longlat +ellps=GRS67 +no_defs", //sad69 geo | |
| 78 | + /* | |
| 79 | + Propriedade: config | |
| 80 | + | |
| 81 | + Define as configurações de cada tipo de coordenada mostrada | |
| 82 | + | |
| 83 | + Para alterar os parâmetros ou acrescentar novas projeções, altere esse objeto por meio de javascript | |
| 84 | + | |
| 85 | + Para mais detalhes, veja i3geo/classesjs/classe_coordenada.js | |
| 86 | + | |
| 87 | + Para desativar a apresentação de uma projeção altere o valor de "ativo". | |
| 88 | + */ | |
| 89 | + config: { | |
| 90 | + "geoProj":{ | |
| 91 | + idhtml: "localizarxy", | |
| 92 | + tipo: "geo", | |
| 93 | + titulo: "Geo", | |
| 94 | + ativo: true, | |
| 95 | + defepsg: "" | |
| 96 | + }, | |
| 97 | + "policonicaSad69":{ | |
| 98 | + idhtml: "localizarxy", | |
| 99 | + tipo: "metrica", | |
| 100 | + titulo: "Policônica SAD-69", | |
| 101 | + ativo: true, | |
| 102 | + defepsg: "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +units=m +no_defs" | |
| 103 | + }, | |
| 104 | + "utmSad69Proj":{ | |
| 105 | + idhtml: "localizarxy", | |
| 106 | + tipo: "utm", | |
| 107 | + titulo: "UTM Sad-69", | |
| 108 | + ativo: true, | |
| 109 | + defepsg: "", | |
| 110 | + zona:{ | |
| 111 | + "19N":"+proj=utm +zone=19 +ellps=aust_SA +units=m +no_defs", | |
| 112 | + "20N":"+proj=utm +zone=20 +ellps=aust_SA +units=m +no_defs", | |
| 113 | + "21N":"+proj=utm +zone=21 +ellps=aust_SA +units=m +no_defs", | |
| 114 | + "22N":"+proj=utm +zone=22 +ellps=aust_SA +units=m +no_defs", | |
| 115 | + "17S":"+proj=utm +zone=17 +south +ellps=aust_SA +units=m +no_defs", | |
| 116 | + "18S":"+proj=utm +zone=18 +south +ellps=aust_SA +units=m +no_defs", | |
| 117 | + "19S":"+proj=utm +zone=19 +south +ellps=aust_SA +units=m +no_defs", | |
| 118 | + "20S":"+proj=utm +zone=20 +south +ellps=aust_SA +units=m +no_defs", | |
| 119 | + "21S":"+proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_defs", | |
| 120 | + "22S":"+proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defs", | |
| 121 | + "23S":"+proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_defs", | |
| 122 | + "24S":"+proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_defs", | |
| 123 | + "25S":"+proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_defs" | |
| 124 | + } | |
| 125 | + }, | |
| 126 | + "utmSirgas2000Proj":{ | |
| 127 | + idhtml: "localizarxy", | |
| 128 | + tipo: "utm", | |
| 129 | + titulo: "UTM Sirgas 2000", | |
| 130 | + ativo: true, | |
| 131 | + defepsg: "", | |
| 132 | + zona:{ | |
| 133 | + "11N":"+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 134 | + "12N":"+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 135 | + "13N":"+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 136 | + "14N":"+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 137 | + "15N":"+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 138 | + "16N":"+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 139 | + "17N":"+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 140 | + "18N":"+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 141 | + "19N":"+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 142 | + "20N":"+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 143 | + "21N":"+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 144 | + "22N":"+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 145 | + "17S":"+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 146 | + "18S":"+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 147 | + "19S":"+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 148 | + "20S":"+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 149 | + "21S":"+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 150 | + "22S":"+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 151 | + "23S":"+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 152 | + "24S":"+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", | |
| 153 | + "25S":"+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs" | |
| 154 | + } | |
| 155 | + } | |
| 156 | + }, | |
| 157 | + /* | |
| 158 | + Propriedade: PARAMETROS (depreciado) | |
| 41 | 159 | |
| 42 | 160 | Parametros de inicialização dos componentes. |
| 43 | 161 | |
| ... | ... | @@ -45,11 +163,9 @@ i3GEO.coordenadas = { |
| 45 | 163 | |
| 46 | 164 | Você pode acessar os parâmetros da seguinte forma: |
| 47 | 165 | |
| 48 | - i3GEO.coordenadas.PARAMETROS.mostraCoordenadasUTM.idhtml = ""; | |
| 49 | - | |
| 50 | - Para evitar o funcionamento de um componente, experimente utilizar o seguinte exemplo: | |
| 166 | + i3GEO.coordenadas.PARAMETROS.mostraCoordenadas.idhtml = ""; | |
| 51 | 167 | |
| 52 | - i3GEO.coordenadas.PARAMETROS.mostraCoordenadasUTM.idhtml = ""; | |
| 168 | + Nas versões anteriores à 4.5 do i3Geo utilizava-se um | |
| 53 | 169 | |
| 54 | 170 | Default: |
| 55 | 171 | |
| ... | ... | @@ -71,17 +187,16 @@ i3GEO.coordenadas = { |
| 71 | 187 | "mostraCoordenadasUTM": |
| 72 | 188 | {idhtml:"localizarxy"}, |
| 73 | 189 | "mostraCoordenadasGEO": |
| 74 | - {idhtml:"localizarxy"} | |
| 190 | + {idhtml:"localizarxy"} | |
| 75 | 191 | }, |
| 76 | 192 | /* |
| 77 | 193 | Function: mostraCoordenadasUTM |
| 78 | 194 | |
| 79 | - Obtém as coordenadas UTM da posição do mouse sobre o mapa. | |
| 195 | + Obtém e mostra as coordenadas UTM da posição do mouse sobre o mapa por meio de um cálculo realizado no servidor. | |
| 80 | 196 | |
| 81 | - As coordenadas são obtidas por meio de uma chamada AJAX. | |
| 197 | + Essa função deixou de ser utilizada na versão 4.5 do i3Geo. | |
| 82 | 198 | |
| 83 | - Para o funcionamento correto é necessário incluir essa função no evento que identifica quando o mouse | |
| 84 | - está estacionado sobre o mapa. Por default isso já é feito pelo i3Geo. | |
| 199 | + As coordenadas são obtidas por meio de uma chamada AJAX. | |
| 85 | 200 | |
| 86 | 201 | Se você não quer essa função no mapa, elimine o elemento HTML existente no mapa que contenha o |
| 87 | 202 | id definido em i3GEO.coordenadas.PARAMETROS (mostraCoordenadasUTM) ou altere a variável i3GEO.eventos.MOUSEPARADO |
| ... | ... | @@ -154,10 +269,10 @@ i3GEO.coordenadas = { |
| 154 | 269 | /* |
| 155 | 270 | Function: mostraCoordenadasGEO |
| 156 | 271 | |
| 157 | - Obtém as coordenadas Geográficas da posição do mouse sobre o mapa. | |
| 272 | + Obtém e mostra as coordenadas Geográficas da posição do mouse sobre o mapa. | |
| 158 | 273 | |
| 159 | - Se você não quer essa função no mapa, elimine o elemento HTML existente no mapa que contenha o | |
| 160 | - id definido em i3GEO.coordenadas.PARAMETROS (localizarxy) | |
| 274 | + Se você não quer essa função no mapa, elimine o elemento HTML que contenha o | |
| 275 | + id definido em i3GEO.coordenadas.PARAMETROS, por default é "localizarxy" | |
| 161 | 276 | |
| 162 | 277 | Parametro: |
| 163 | 278 | |
| ... | ... | @@ -167,50 +282,314 @@ i3GEO.coordenadas = { |
| 167 | 282 | mostraCoordenadasGEO: function(id){ |
| 168 | 283 | if(typeof(console) !== 'undefined'){console.info("i3GEO.coordenadas.mostraCoordenadasGEO()");} |
| 169 | 284 | try{ |
| 170 | - // | |
| 171 | - //ativa o evento que preenche os campos de coordenadas | |
| 172 | - // | |
| 173 | 285 | var ins,temp; |
| 174 | 286 | if(arguments.length === 0 || id === "" || id == undefined) |
| 175 | 287 | {id = i3GEO.coordenadas.PARAMETROS.mostraCoordenadasGEO.idhtml;} |
| 176 | 288 | else |
| 177 | 289 | {i3GEO.coordenadas.PARAMETROS.mostraCoordenadasGEO.idhtml = id;} |
| 178 | 290 | if($i(id)){ |
| 179 | - if(!$i("xm")){ | |
| 180 | - ins = "<table style='text-align:center'><tr>" + | |
| 181 | - "<td>X: </td>" + | |
| 182 | - "<td>"+$inputText(id,"315","xg","grau","3","-00")+" </td>" + | |
| 183 | - "<td>"+$inputText("","","xm","minuto","3","00")+" </td>" + | |
| 184 | - "<td>"+$inputText("","","xs","segundo","5","00.00")+" </td>" + | |
| 185 | - "<td>Y:"+$inputText("","","yg","grau","3","-00")+" </td>" + | |
| 186 | - "<td>"+$inputText("","","ym","minuto","3","00")+" </td>" + | |
| 187 | - "<td>"+$inputText("","","ys","segundo","5","00.00")+"</td>"; | |
| 188 | - temp = 'var xxx = i3GEO.calculo.dms2dd($i("xg").value,$i("xm").value,$i("xs").value);' + | |
| 189 | - 'var yyy = i3GEO.calculo.dms2dd($i("yg").value,$i("ym").value,$i("ys").value);' + | |
| 190 | - 'i3GEO.navega.zoomponto(i3GEO.configura.locaplic,i3GEO.configura.sid,xxx,yyy);'; | |
| 191 | - ins += "<td><img class='tic' title='zoom' onclick='"+temp+"' src='"+i3GEO.util.$im("branco.gif")+"' id=procurarxy /></td>" + | |
| 192 | - "</tr></table>"; | |
| 193 | - $i(id).innerHTML = ins; | |
| 194 | - atualizaLocalizarxy = function(){ | |
| 195 | - try{ | |
| 196 | - var x = objposicaocursor.dmsx.split(" "); | |
| 197 | - var y = objposicaocursor.dmsy.split(" "); | |
| 198 | - $i("xg").value = x[0]; | |
| 199 | - $i("xm").value = x[1]; | |
| 200 | - $i("xs").value = x[2]; | |
| 201 | - $i("yg").value = y[0]; | |
| 202 | - $i("ym").value = y[1]; | |
| 203 | - $i("ys").value = y[2]; | |
| 204 | - } | |
| 205 | - catch(m){ | |
| 206 | - if(typeof(console) !== 'undefined'){console.error(m);} | |
| 207 | - } | |
| 291 | + if(!$i("coordgeotabela")){ | |
| 292 | + $i(id).innerHTML = i3GEO.coordenadas.criaMascaraDMS("coordgeotabela"); | |
| 293 | + atualizaLocalizarGeo = function(){ | |
| 294 | + var temp = $i("coordgeotabela"); | |
| 295 | + if(temp && temp.style.display === "block") | |
| 296 | + {i3GEO.coordenadas.atualizaGeo(objposicaocursor.dmsx,objposicaocursor.dmsy,"coordgeotabela");} | |
| 208 | 297 | }; |
| 209 | - if(i3GEO.eventos.MOUSEMOVE.toString().search("atualizaLocalizarxy()") < 0) | |
| 210 | - {i3GEO.eventos.MOUSEMOVE.push("atualizaLocalizarxy()");} | |
| 298 | + if(i3GEO.eventos.MOUSEMOVE.toString().search("atualizaLocalizarGeo()") < 0) | |
| 299 | + {i3GEO.eventos.MOUSEMOVE.push("atualizaLocalizarGeo()");} | |
| 211 | 300 | } |
| 212 | 301 | } |
| 213 | 302 | } |
| 214 | 303 | catch(e){alert("mostraCoordenadasGeo: "+e.description);} |
| 304 | + }, | |
| 305 | + /* | |
| 306 | + Function: geo2zonaUtm | |
| 307 | + | |
| 308 | + Determina qual é a zona UTM de um par de coordenadas geográficas | |
| 309 | + | |
| 310 | + Parametros: | |
| 311 | + | |
| 312 | + long - longitude em décimos de grau | |
| 313 | + | |
| 314 | + Return: | |
| 315 | + | |
| 316 | + {number} - zona UTM | |
| 317 | + */ | |
| 318 | + geo2zonaUtm: function(long){ | |
| 319 | + long = (long * 1) + 180; | |
| 320 | + long = long / 6; | |
| 321 | + return parseInt(long,10) + 1; | |
| 322 | + }, | |
| 323 | + /* | |
| 324 | + Function: criaMascaraDMS | |
| 325 | + | |
| 326 | + Cria uma tabela para mostrar as coordenadas no padrão grau minuto e segundo | |
| 327 | + | |
| 328 | + A tabela criada receberá o id = prefixo | |
| 329 | + | |
| 330 | + Parametro: | |
| 331 | + | |
| 332 | + prefixo {string} - prefixo para batizar os ids dos elementos que serão criados | |
| 333 | + | |
| 334 | + Retorno: | |
| 335 | + | |
| 336 | + {string} - html com a tabela | |
| 337 | + */ | |
| 338 | + criaMascaraDMS: function(prefixo,titulo,caixa){ | |
| 339 | + var ins = "<table id="+prefixo+" style=display:block;text-align:center ><tr style='border-bottom:2px solid white' >" + | |
| 340 | + "<td style=width:150px;text-align:right >"+titulo+" X: </td>" + | |
| 341 | + "<td>"+$inputText("","315",prefixo+"xg","grau","3","-00")+" </td>" + | |
| 342 | + "<td>"+$inputText("","",prefixo+"xm","minuto","3","00")+" </td>" + | |
| 343 | + "<td>"+$inputText("","",prefixo+"xs","segundo","5","00.00")+" </td>" + | |
| 344 | + "<td>Y:"+$inputText("","",prefixo+"yg","grau","3","-00")+" </td>" + | |
| 345 | + "<td>"+$inputText("","",prefixo+"ym","minuto","3","00")+" </td>" + | |
| 346 | + "<td>"+$inputText("","",prefixo+"ys","segundo","5","00.00")+"</td>"; | |
| 347 | + temp = 'var '+prefixo+'xxx = i3GEO.calculo.dms2dd($i("'+prefixo+'xg").value,$i("'+prefixo+'xm").value,$i("'+prefixo+'xs").value);' + | |
| 348 | + 'var '+prefixo+'yyy = i3GEO.calculo.dms2dd($i("'+prefixo+'yg").value,$i("'+prefixo+'ym").value,$i("'+prefixo+'ys").value);' + | |
| 349 | + 'i3GEO.navega.zoomponto(i3GEO.configura.locaplic,i3GEO.configura.sid,'+prefixo+'xxx,'+prefixo+'yyy);'; | |
| 350 | + ins += '<td><img class=tic title=zoom onclick="'+temp+'" src="'+i3GEO.util.$im("branco.gif")+'" /></td>' + | |
| 351 | + "<td>"+caixa+"<td>" + | |
| 352 | + "</tr></table>"; | |
| 353 | + return ins; | |
| 354 | + }, | |
| 355 | + /* | |
| 356 | + Function: atualizaGeo | |
| 357 | + | |
| 358 | + Atualiza os valores em uma tabela do tipo DMS | |
| 359 | + | |
| 360 | + Parametros: | |
| 361 | + | |
| 362 | + dmsx {string} - valors de longitude em "d m s" | |
| 363 | + | |
| 364 | + dmsy {string} - valors de latitude em "d m s" | |
| 365 | + | |
| 366 | + prefixo {string} - prefixo da tabela (veja criaMascaraDMS) | |
| 367 | + | |
| 368 | + */ | |
| 369 | + atualizaGeo: function(dmsx,dmsy,prefixo){ | |
| 370 | + var x = dmsx.split(" "), | |
| 371 | + y = dmsy.split(" "); | |
| 372 | + $i(prefixo+"xg").value = x[0]; | |
| 373 | + $i(prefixo+"xm").value = x[1]; | |
| 374 | + $i(prefixo+"xs").value = x[2]; | |
| 375 | + $i(prefixo+"yg").value = y[0]; | |
| 376 | + $i(prefixo+"ym").value = y[1]; | |
| 377 | + $i(prefixo+"ys").value = y[2]; | |
| 378 | + }, | |
| 379 | + /* | |
| 380 | + Function: criaMascaraMetrica | |
| 381 | + | |
| 382 | + Cria uma tabela para mostrar as coordenadas no padrão métrico (x e y) | |
| 383 | + | |
| 384 | + A tabela criada receberá o id prefixo+"tabela" | |
| 385 | + | |
| 386 | + Parametro: | |
| 387 | + | |
| 388 | + prefixo {string} - prefixo para batizar os ids dos elementos que serão criados | |
| 389 | + | |
| 390 | + cixa {string} - (opcional) caixa de seleção de tipos | |
| 391 | + | |
| 392 | + Retorno: | |
| 393 | + | |
| 394 | + {string} - html com a tabela | |
| 395 | + */ | |
| 396 | + criaMascaraMetrica: function(prefixo,titulo,caixa){ | |
| 397 | + var ins = "<table id="+prefixo+" style=display:block;text-align:center ><tr style='border-bottom:2px solid white' >" + | |
| 398 | + "<td style=width:150px;text-align:right >"+titulo+" X: </td>" + | |
| 399 | + "<td>"+$inputText("","",prefixo+"X","X","12","00")+" </td>" + | |
| 400 | + "<td>Y:"+$inputText("","",prefixo+"Y","Y","12","00")+" </td>" + | |
| 401 | + "<td>Zn:"+$inputText("","",prefixo+"ZN","Zona","2","--")+" </td>" + | |
| 402 | + "<td>"+caixa+"<td>" + | |
| 403 | + "</tr></table>"; | |
| 404 | + return ins; | |
| 405 | + }, | |
| 406 | + /* | |
| 407 | + Function: atualizaProj4 | |
| 408 | + | |
| 409 | + Atualiza os valores em uma tabela do tipo x e y com base na biblioteca Proj4 | |
| 410 | + | |
| 411 | + http://trac.osgeo.org/proj4js/wiki/UserGuide | |
| 412 | + | |
| 413 | + Parametros: | |
| 414 | + | |
| 415 | + configProj {string} | |
| 416 | + | |
| 417 | + */ | |
| 418 | + atualizaProj4: function(configProj){ | |
| 419 | + eval("temp = i3GEO.coordenadas.config."+configProj+";"); | |
| 420 | + try{ | |
| 421 | + if($i(configProj).style.display == "none") | |
| 422 | + {return;} | |
| 423 | + } | |
| 424 | + catch(e){} | |
| 425 | + if(temp.tipo === "metrica"){ | |
| 426 | + var destino = temp.defepsg; | |
| 427 | + } | |
| 428 | + if(temp.tipo === "utm"){ | |
| 429 | + var zona = i3GEO.coordenadas.geo2zonaUtm(objposicaocursor.ddx); | |
| 430 | + $i(configProj+"ZN").value = zona | |
| 431 | + if(objposicaocursor.ddy*1 > 0) | |
| 432 | + {var destino = temp.zona[zona+"N"];} | |
| 433 | + else | |
| 434 | + {var destino = temp.zona[zona+"S"];} | |
| 435 | + if(destino == undefined){ | |
| 436 | + i3GEO.util.defineValor(configProj+"X","value","?"); | |
| 437 | + i3GEO.util.defineValor(configProj+"Y","value","?"); | |
| 438 | + return; | |
| 439 | + } | |
| 440 | + } | |
| 441 | + Proj4js.defs = { | |
| 442 | + 'ORIGEM' : i3GEO.coordenadas.defOrigem, | |
| 443 | + 'DESTINO': destino | |
| 444 | + }; | |
| 445 | + var source = new Proj4js.Proj("ORIGEM"), | |
| 446 | + dest = new Proj4js.Proj("DESTINO"), | |
| 447 | + p = new Proj4js.Point(objposicaocursor.ddx,objposicaocursor.ddy); | |
| 448 | + Proj4js.transform(source, dest, p); | |
| 449 | + i3GEO.util.defineValor(configProj+"X","value",p.x); | |
| 450 | + i3GEO.util.defineValor(configProj+"Y","value",p.y); | |
| 451 | + }, | |
| 452 | + /* | |
| 453 | + Function: ativaBloco | |
| 454 | + | |
| 455 | + Mostra um tipo de coordenada e esconde os outros. | |
| 456 | + | |
| 457 | + Mostra o que estiver definido em i3GEO.coordenadas.padrao | |
| 458 | + */ | |
| 459 | + ativaBloco: function(){ | |
| 460 | + var tipos = i3GEO.util.listaChaves(i3GEO.coordenadas.config), | |
| 461 | + n = tipos.length, | |
| 462 | + temp, | |
| 463 | + i = 0; | |
| 464 | + // | |
| 465 | + //cria o HTML e a caixa de seleção | |
| 466 | + // | |
| 467 | + for(i=0;i<n;i++){ | |
| 468 | + eval("temp = i3GEO.coordenadas.config."+tipos[i]+";"); | |
| 469 | + if(temp.ativo === true){ | |
| 470 | + if(tipos[i] == i3GEO.coordenadas.padrao) | |
| 471 | + {$i(tipos[i]).style.display = "block";} | |
| 472 | + else | |
| 473 | + {$i(tipos[i]).style.display = "none";} | |
| 474 | + } | |
| 475 | + } | |
| 476 | + }, | |
| 477 | + /* | |
| 478 | + Function: mudaTipo | |
| 479 | + | |
| 480 | + Muda o tipo de coordenada que está sendo mostrada no formato "bloco". | |
| 481 | + | |
| 482 | + Parametro: | |
| 483 | + | |
| 484 | + tipo {string} - tipo de coordenada | |
| 485 | + */ | |
| 486 | + mudaTipo: function(obj){ | |
| 487 | + if(obj.value === "janela"){ | |
| 488 | + i3GEO.coordenadas.formato = "janela"; | |
| 489 | + i3GEO.coordenadas.mostraCoordenadas(); | |
| 490 | + return; | |
| 491 | + } | |
| 492 | + i3GEO.coordenadas.padrao = obj.value; | |
| 493 | + obj.selectedIndex = 0; | |
| 494 | + i3GEO.coordenadas.ativaBloco(); | |
| 495 | + }, | |
| 496 | + /* | |
| 497 | + Function: mostraCoordenadas | |
| 498 | + | |
| 499 | + Constrói o conjunto de elementos HTML para mostrar as coordenadas e define as funções de atualização. | |
| 500 | + */ | |
| 501 | + mostraCoordenadas: function(){ | |
| 502 | + try{ | |
| 503 | + var tipos = i3GEO.util.listaChaves(i3GEO.coordenadas.config), | |
| 504 | + n = tipos.length, | |
| 505 | + temp, | |
| 506 | + ins = "", | |
| 507 | + onde = "", | |
| 508 | + i = 0, | |
| 509 | + caixa = "<select onchange='javascript:i3GEO.coordenadas.mudaTipo(this);' style='font-size:10px;height:15px;width:50px;' ><option>---</option><option value='janela' >janela</option>"; | |
| 510 | + // | |
| 511 | + //cria a caixa de seleção | |
| 512 | + // | |
| 513 | + for(i=0;i<n;i++){ | |
| 514 | + eval("temp = i3GEO.coordenadas.config."+tipos[i]+";"); | |
| 515 | + if(temp.ativo === true){ | |
| 516 | + caixa += "<option value='"+tipos[i]+"'>"+temp.titulo+"</option>"; | |
| 517 | + } | |
| 518 | + } | |
| 519 | + caixa += "</select>"; | |
| 520 | + if(i3GEO.coordenadas.formato !== "bloco") | |
| 521 | + {caixa = "";} | |
| 522 | + // | |
| 523 | + //cria o HTML | |
| 524 | + // | |
| 525 | + for(i=0;i<n;i++){ | |
| 526 | + eval("temp = i3GEO.coordenadas.config."+tipos[i]+";"); | |
| 527 | + if(temp.ativo === true){ | |
| 528 | + if(temp.tipo === "geo"){ | |
| 529 | + ins += i3GEO.coordenadas.criaMascaraDMS(tipos[i],temp.titulo,caixa); | |
| 530 | + if(i3GEO.coordenadas.formato === "separado"){ | |
| 531 | + try{$i(temp.idhtml).innerHTML = ins;} | |
| 532 | + catch(e){} | |
| 533 | + ins = ""; | |
| 534 | + } | |
| 535 | + else | |
| 536 | + {onde = temp.idhtml;} | |
| 537 | + } | |
| 538 | + else{ | |
| 539 | + ins += i3GEO.coordenadas.criaMascaraMetrica(tipos[i],temp.titulo,caixa); | |
| 540 | + } | |
| 541 | + } | |
| 542 | + } | |
| 543 | + if(i3GEO.coordenadas.formato === "janela"){ | |
| 544 | + var janela = i3GEO.janela.cria( | |
| 545 | + "450px", | |
| 546 | + "90px", | |
| 547 | + "", | |
| 548 | + "", | |
| 549 | + "", | |
| 550 | + "Coordenadas aproximadas", | |
| 551 | + "i3GEOJanelaCoordenadas", | |
| 552 | + false, | |
| 553 | + "hd", | |
| 554 | + "", | |
| 555 | + "" | |
| 556 | + ); | |
| 557 | + temp = $i("i3GEOJanelaCoordenadas_corpo"); | |
| 558 | + temp.style.backgroundColor = "white"; | |
| 559 | + temp.style.textAlign = "left"; | |
| 560 | + temp = $i("i3GEOJanelaCoordenadas"); | |
| 561 | + temp.onmouseover = ""; | |
| 562 | + temp.onmouseout = ""; | |
| 563 | + if($i(onde)) | |
| 564 | + {$i(onde).innerHTML = "";} | |
| 565 | + onde = "i3GEOJanelaCoordenadas_corpo"; | |
| 566 | + } | |
| 567 | + if($i(onde)) | |
| 568 | + {$i(onde).innerHTML = ins;} | |
| 569 | + // | |
| 570 | + //aplica as funções de movimentação do mouse | |
| 571 | + // | |
| 572 | + for(i=0;i<n;i++){ | |
| 573 | + eval("temp = i3GEO.coordenadas.config."+tipos[i]+";"); | |
| 574 | + if(temp.ativo === true){ | |
| 575 | + if(temp.tipo === "geo"){ | |
| 576 | + atualizaLocalizarGeo = function(id){ | |
| 577 | + temp = $i(id); | |
| 578 | + if(temp && temp.style.display == "block") | |
| 579 | + {i3GEO.coordenadas.atualizaGeo(objposicaocursor.dmsx,objposicaocursor.dmsy,id);} | |
| 580 | + }; | |
| 581 | + if(i3GEO.eventos.MOUSEMOVE.toString().search("atualizaLocalizarGeo('"+tipos[i]+"')") < 0) | |
| 582 | + {i3GEO.eventos.MOUSEMOVE.push("atualizaLocalizarGeo('"+tipos[i]+"')");} | |
| 583 | + } | |
| 584 | + else{ | |
| 585 | + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.coordenadas.atualizaProj4('"+tipos[i]+"')") < 0) | |
| 586 | + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.coordenadas.atualizaProj4('"+tipos[i]+"')");} | |
| 587 | + } | |
| 588 | + } | |
| 589 | + } | |
| 590 | + if(i3GEO.coordenadas.formato === "bloco") | |
| 591 | + {i3GEO.coordenadas.ativaBloco();} | |
| 592 | + } | |
| 593 | + catch(e){} | |
| 215 | 594 | } |
| 216 | 595 | }; |
| 217 | 596 | \ No newline at end of file | ... | ... |
classesjs/classe_interface.js
| ... | ... | @@ -467,8 +467,7 @@ i3GEO.Interface = { |
| 467 | 467 | objmapaparado = "nao"; //utilizado para verificar se o mouse esta parado |
| 468 | 468 | i3GEO.gadgets.mostraMenuSuspenso(); |
| 469 | 469 | i3GEO.eventos.ativa(i); |
| 470 | - i3GEO.coordenadas.mostraCoordenadasGEO(); | |
| 471 | - i3GEO.coordenadas.mostraCoordenadasUTM(); | |
| 470 | + i3GEO.coordenadas.mostraCoordenadas(); | |
| 472 | 471 | i3GEO.gadgets.mostraEscalaNumerica(); |
| 473 | 472 | i3GEO.gadgets.mostraEscalaGrafica(); |
| 474 | 473 | i3GEO.gadgets.visual.inicia(); |
| ... | ... | @@ -774,8 +773,7 @@ i3GEO.Interface = { |
| 774 | 773 | } |
| 775 | 774 | |
| 776 | 775 | }; |
| 777 | - i3GEO.coordenadas.mostraCoordenadasGEO(); | |
| 778 | - i3GEO.coordenadas.mostraCoordenadasUTM(); | |
| 776 | + i3GEO.coordenadas.mostraCoordenadas(); | |
| 779 | 777 | montaMapa(); |
| 780 | 778 | //i3GEO.php.openlayers(montaMapa); |
| 781 | 779 | i3GEO.gadgets.mostraMenuSuspenso(); |
| ... | ... | @@ -1207,8 +1205,7 @@ i3GEO.Interface = { |
| 1207 | 1205 | i3GEO.gadgets.mostraInserirKml(); |
| 1208 | 1206 | i3GEO.Interface.googlemaps.ativaBotoes(); |
| 1209 | 1207 | i3GEO.eventos.ativa($i(i3GEO.Interface.IDMAPA)); |
| 1210 | - i3GEO.coordenadas.mostraCoordenadasGEO(); | |
| 1211 | - i3GEO.coordenadas.mostraCoordenadasUTM(); | |
| 1208 | + i3GEO.coordenadas.mostraCoordenadas(); | |
| 1212 | 1209 | i3GEO.gadgets.mostraEscalaNumerica(); |
| 1213 | 1210 | i3GEO.gadgets.mostraMenuSuspenso(); |
| 1214 | 1211 | i3GEO.idioma.mostraSeletor(); | ... | ... |
classesjs/compactajs.php
| ... | ... | @@ -96,6 +96,7 @@ packer("../pacotes/balloon-tooltips/htdocs/js/balloon.js","../pacotes/balloon-to |
| 96 | 96 | //gera um único js para a inicialização do I3Geo |
| 97 | 97 | // |
| 98 | 98 | $jsfiles = array( |
| 99 | +"../pacotes/proj4js/lib/proj4js-compressed.js", | |
| 99 | 100 | "../pacotes/cpaint/cpaint2_compacto.inc.js", |
| 100 | 101 | "../pacotes/yui270/build/yahoo/yahoo-min.js", |
| 101 | 102 | "../pacotes/yui270/build/yahoo-dom-event/yahoo-dom-event.js", | ... | ... |
classesjs/i3geonaocompacto.js
| ... | ... | @@ -14,6 +14,7 @@ for (var i = 0; i < scripts.length; i++) { |
| 14 | 14 | } |
| 15 | 15 | var allScriptTags = ""; |
| 16 | 16 | var jsfiles = new Array( |
| 17 | +"../pacotes/proj4js/lib/proj4js-compressed.js", | |
| 17 | 18 | "../pacotes/yui270/build/yahoo/yahoo-min.js", |
| 18 | 19 | "../pacotes/yui270/build/yahoo-dom-event/yahoo-dom-event.js", |
| 19 | 20 | "../pacotes/yui270/build/dom/dom-min.js", | ... | ... |
ferramentas/epsg.txt
| 1 | -# Geográfica SAD69 | |
| 1 | +# Geográfica SAD69 GRS67 4291 | |
| 2 | 2 | <4291> +proj=longlat +ellps=GRS67 +no_defs no_defs <> |
| 3 | +# Geográfica SAD69 aust_SA 4618 (mais recente) | |
| 4 | +<4618> +proj=longlat +ellps=aust_SA +no_defs <> | |
| 3 | 5 | # WGS 84 |
| 4 | 6 | <4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs no_defs <> |
| 5 | 7 | # Corrego Alegre / UTM zone 21S |
| ... | ... | @@ -14,29 +16,73 @@ |
| 14 | 16 | <22525> +proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs <> |
| 15 | 17 | # SAD69 / Brazil Polyconic |
| 16 | 18 | <29101> +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +units=m +no_defs <> |
| 17 | -# SAD69 / UTM zone 19N | |
| 18 | -<29119> +proj=utm +zone=19 +ellps=GRS67 +units=m +no_defs <> | |
| 19 | -# SAD69 / UTM zone 20N | |
| 20 | -<29120> +proj=utm +zone=20 +ellps=GRS67 +units=m +no_defs <> | |
| 21 | -# SAD69 / UTM zone 21N | |
| 22 | -<29121> +proj=utm +zone=21 +ellps=GRS67 +units=m +no_defs <> | |
| 23 | -# SAD69 / UTM zone 22N | |
| 24 | -<29122> +proj=utm +zone=22 +ellps=GRS67 +units=m +no_defs <> | |
| 25 | -# SAD69 / UTM zone 17S | |
| 26 | -<29177> +proj=utm +zone=17 +south +ellps=GRS67 +units=m +no_defs <> | |
| 27 | -# SAD69 / UTM zone 18S | |
| 28 | -<29178> +proj=utm +zone=18 +south +ellps=GRS67 +units=m +no_defs <> | |
| 29 | -# SAD69 / UTM zone 19S | |
| 30 | -<29179> +proj=utm +zone=19 +south +ellps=GRS67 +units=m +no_defs <> | |
| 31 | -# SAD69 / UTM zone 20S | |
| 32 | -<29180> +proj=utm +zone=20 +south +ellps=GRS67 +units=m +no_defs <> | |
| 33 | -# SAD69 / UTM zone 21S | |
| 34 | -<29181> +proj=utm +zone=21 +south +ellps=GRS67 +units=m +no_defs <> | |
| 35 | -# SAD69 / UTM zone 22S | |
| 36 | -<29182> +proj=utm +zone=22 +south +ellps=GRS67 +units=m +no_defs <> | |
| 37 | -# SAD69 / UTM zone 23S | |
| 38 | -<29183> +proj=utm +zone=23 +south +ellps=GRS67 +units=m +no_defs <> | |
| 39 | -# SAD69 / UTM zone 24S | |
| 40 | -<29184> +proj=utm +zone=24 +south +ellps=GRS67 +units=m +no_defs <> | |
| 41 | -# SAD69 / UTM zone 25S | |
| 42 | -<29185> +proj=utm +zone=25 +south +ellps=GRS67 +units=m +no_defs <> | |
| 19 | +# SAD69 / UTM zone 18N | |
| 20 | +<29168> +proj=utm +zone=18 +ellps=aust_SA +units=m +no_defs <> | |
| 21 | +# SAD69 / UTM zone 19N | |
| 22 | +<29169> +proj=utm +zone=19 +ellps=aust_SA +units=m +no_defs <> | |
| 23 | +# SAD69 / UTM zone 20N | |
| 24 | +<29170> +proj=utm +zone=20 +ellps=aust_SA +units=m +no_defs <> | |
| 25 | +# SAD69 / UTM zone 21N | |
| 26 | +<29171> +proj=utm +zone=21 +ellps=aust_SA +units=m +no_defs <> | |
| 27 | +# SAD69 / UTM zone 22N | |
| 28 | +<29172> +proj=utm +zone=22 +ellps=aust_SA +units=m +no_defs <> | |
| 29 | +# SAD69 / UTM zone 17S | |
| 30 | +<29187> +proj=utm +zone=17 +south +ellps=aust_SA +units=m +no_defs <> | |
| 31 | +# SAD69 / UTM zone 18S | |
| 32 | +<29188> +proj=utm +zone=18 +south +ellps=aust_SA +units=m +no_defs <> | |
| 33 | +# SAD69 / UTM zone 19S | |
| 34 | +<29189> +proj=utm +zone=19 +south +ellps=aust_SA +units=m +no_defs <> | |
| 35 | +# SAD69 / UTM zone 20S | |
| 36 | +<29190> +proj=utm +zone=20 +south +ellps=aust_SA +units=m +no_defs <> | |
| 37 | +# SAD69 / UTM zone 21S | |
| 38 | +<29191> +proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_defs <> | |
| 39 | +# SAD69 / UTM zone 22S | |
| 40 | +<29192> +proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defs <> | |
| 41 | +# SAD69 / UTM zone 23S | |
| 42 | +<29193> +proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_defs <> | |
| 43 | +# SAD69 / UTM zone 24S | |
| 44 | +<29194> +proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_defs <> | |
| 45 | +# SAD69 / UTM zone 25S | |
| 46 | +<29195> +proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_defs <> | |
| 47 | +# SIRGAS 2000 / UTM zone 11N | |
| 48 | +<31965> +proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 49 | +# SIRGAS 2000 / UTM zone 12N | |
| 50 | +<31966> +proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 51 | +# SIRGAS 2000 / UTM zone 13N | |
| 52 | +<31967> +proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 53 | +# SIRGAS 2000 / UTM zone 14N | |
| 54 | +<31968> +proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 55 | +# SIRGAS 2000 / UTM zone 15N | |
| 56 | +<31969> +proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 57 | +# SIRGAS 2000 / UTM zone 16N | |
| 58 | +<31970> +proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 59 | +# SIRGAS 2000 / UTM zone 17N | |
| 60 | +<31971> +proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 61 | +# SIRGAS 2000 / UTM zone 18N | |
| 62 | +<31972> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 63 | +# SIRGAS 2000 / UTM zone 19N | |
| 64 | +<31973> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 65 | +# SIRGAS 2000 / UTM zone 20N | |
| 66 | +<31974> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 67 | +# SIRGAS 2000 / UTM zone 21N | |
| 68 | +<31975> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 69 | +# SIRGAS 2000 / UTM zone 22N | |
| 70 | +<31976> +proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 71 | +# SIRGAS 2000 / UTM zone 17S | |
| 72 | +<31977> +proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 73 | +# SIRGAS 2000 / UTM zone 18S | |
| 74 | +<31978> +proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 75 | +# SIRGAS 2000 / UTM zone 19S | |
| 76 | +<31979> +proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 77 | +# SIRGAS 2000 / UTM zone 20S | |
| 78 | +<31980> +proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 79 | +# SIRGAS 2000 / UTM zone 21S | |
| 80 | +<31981> +proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 81 | +# SIRGAS 2000 / UTM zone 22S | |
| 82 | +<31982> +proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 83 | +# SIRGAS 2000 / UTM zone 23S | |
| 84 | +<31983> +proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 85 | +# SIRGAS 2000 / UTM zone 24S | |
| 86 | +<31984> +proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 87 | +# SIRGAS 2000 / UTM zone 25S | |
| 88 | +<31985> +proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> | |
| 43 | 89 | \ No newline at end of file | ... | ... |