Commit 63378c88262a24e1ea344d01e6fdf857a0c34f42
1 parent
03e1d98a
Exists in
master
and in
7 other branches
Incluída função de cálculo de direção entre dois pontos (i3geo.calculo.direcao).…
… A janela da ferramenta de cálculo de distâncias agora mostra também a direção.
Showing
7 changed files
with
237 additions
and
11 deletions
Show diff stats
classesjs/classe_analise.js
... | ... | @@ -210,7 +210,7 @@ i3GEO.analise = { |
210 | 210 | } |
211 | 211 | |
212 | 212 | YAHOO.namespace("janelaDocamede.xp"); |
213 | - YAHOO.janelaDocamede.xp.panel = new YAHOO.widget.Panel("mostradistancia", {width:220,fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); | |
213 | + YAHOO.janelaDocamede.xp.panel = new YAHOO.widget.Panel("mostradistancia", {width:300,fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); | |
214 | 214 | YAHOO.janelaDocamede.xp.panel.render(); |
215 | 215 | YAHOO.janelaDocamede.xp.panel.moveTo(imagemxi+150,imagemyi); |
216 | 216 | YAHOO.util.Event.addListener(YAHOO.janelaDocamede.xp.panel.close, "click", i3GEO.analise.medeDistancia.fechaJanela); |
... | ... | @@ -274,6 +274,9 @@ i3GEO.analise = { |
274 | 274 | var n = pontosdistobj.xpt.length; |
275 | 275 | if (n > 0){ |
276 | 276 | var d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); |
277 | + var r = i3GEO.calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); | |
278 | + var r = i3GEO.calculo.dd2dms(r,r); | |
279 | + var r = r[0]; | |
277 | 280 | if (i3GEO.parametros.mapscale > 500000) |
278 | 281 | {var d = parseInt(d);} |
279 | 282 | else{ |
... | ... | @@ -284,8 +287,9 @@ i3GEO.analise = { |
284 | 287 | d = d * 1; |
285 | 288 | } |
286 | 289 | var da = d + pontosdistobj.dist[n-1]; |
287 | - if ($i("mostradistancia_calculo")) | |
288 | - {$i("mostradistancia_calculo").innerHTML = " Dist acum.= "+da+" atual= "+d+" km";} | |
290 | + if ($i("mostradistancia_calculo")){ | |
291 | + $i("mostradistancia_calculo").innerHTML = " Dist acum.= "+da+" atual= "+d+" km <br> Direção (DMS)= "+r; | |
292 | + } | |
289 | 293 | i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n); |
290 | 294 | } |
291 | 295 | } | ... | ... |
classesjs/classe_calculo.js
... | ... | @@ -324,6 +324,18 @@ i3GEO.calculo = { |
324 | 324 | var d = R * c; |
325 | 325 | return d; |
326 | 326 | }, |
327 | + direcao: function(lon1,lat1,lon2,lat2){ | |
328 | + lat1 = lat1 * (Math.PI / 180); | |
329 | + lat2 = lat2 * (Math.PI / 180); | |
330 | + var dLon = (lon2-lon1) * (Math.PI / 180); | |
331 | + var y = Math.sin(dLon) * Math.cos(lat2); | |
332 | + var x = Math.cos(lat1)*Math.sin(lat2) - | |
333 | + Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon); | |
334 | + var r = Math.atan2(y, x); | |
335 | + var r = r * 180 / Math.PI; | |
336 | + var r = r + 360; | |
337 | + return r % 360; | |
338 | + }, | |
327 | 339 | /* |
328 | 340 | Function: rect2ext |
329 | 341 | ... | ... |
classesjs/compactados/classe_analise_compacto.js
1 | -if(typeof(i3GEO)=='undefined'){i3GEO=new Array()}i3GEO.analise={dialogo:{gradePontos:function(){i3GEO.janela.cria("400px","250px",i3GEO.configura.locaplic+"/ferramentas/gradepontos/index.htm","","","Grade de pontos <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=15' > </a>")},gradePol:function(){i3GEO.janela.cria("400px","250px",i3GEO.configura.locaplic+"/ferramentas/gradepol/index.htm","","","Grade de polígonos <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=14' > </a>")},gradeHex:function(){i3GEO.janela.cria("400px","250px",i3GEO.configura.locaplic+"/ferramentas/gradehex/index.htm","","","Grade de hexágonos <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=16' > </a>")},analisaGeometrias:function(){g_tipoacao="selecao";i3GEO.temaAtivo="";i3GEO.janela.cria("500px","400px",i3GEO.configura.locaplic+'/ferramentas/analisageometrias/index.htm',"","","Análise de geometrias <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=23' > </a>")},pontosdistri:function(){if(i3GEO.parametros.r=="nao"){alert("Opção não disponível")}else{i3GEO.janela.cria("400px","300px",i3GEO.configura.locaplic+"/ferramentas/pontosdistri/index.htm","","","Distribuição de pontos <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=20' > </a>")}},pontoempoligono:function(){i3GEO.janela.cria("400px","250px",i3GEO.configura.locaplic+"/ferramentas/pontoempoligono/index.htm","","","Ponto em polígono <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=18' > </a>")},nptPol:function(){i3GEO.janela.cria("400px","200px",i3GEO.configura.locaplic+"/ferramentas/nptpol/index.htm","","","Pontos por polígono <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=19' > </a>")},buffer:function(){i3GEO.janela.cria("400px","180px",i3GEO.configura.locaplic+"/ferramentas/buffer/index.htm","","","Entorno <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=24' > </a>")},distanciaptpt:function(){i3GEO.janela.cria("400px","220px",i3GEO.configura.locaplic+"/ferramentas/distanciaptpt/index.htm","","","Distância <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=17' > </a>")},centroide:function(){i3GEO.janela.cria("400px","180px",i3GEO.configura.locaplic+"/ferramentas/centroide/index.htm","","","Centróide <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=21' > </a>")},dissolve:function(){i3GEO.janela.cria("400px","230px",i3GEO.configura.locaplic+"/ferramentas/dissolve/index.htm","","","Dissolve <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=22' > </a>")},agrupaElementos:function(){i3GEO.janela.cria("400px","230px",i3GEO.configura.locaplic+"/ferramentas/agrupaelementos/index.htm","","","Agrupa <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=25' > </a>")}},medeDistancia:{inicia:function(){pontosdistobj=new Array();i3GEO.analise.medeDistancia.criaJanela();if(g_tipoacao!="mede"){if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()")<0){i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()")}if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()")<0){i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()")}$i("mostradistancia").style.display="block";i3GEO.desenho.criaContainerRichdraw();i3GEO.desenho.richdraw.lineColor="black";i3GEO.desenho.richdraw.lineWidth="1px";g_tipoacao="mede"}else{i3GEO.desenho.richdraw.fecha();if($i("mostradistancia")){$i("mostradistancia").style.display="none"}if($i("pontosins")){$i("pontosins").style.display="none"}}},criaJanela:function(){if(!$i("mostradistancia")){var novoel=document.createElement("div");novoel.id="mostradistancia";var ins='<div class="hd" > <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'/ajuda_usuario.php?idcategoria=6&idajuda=50" > </a></div>';ins+='<div class="bd" style="text-align:left;padding:3px;" >';ins+='<div style="text-align:left;padding:3px;" id="mostradistancia_calculo" ></div>';ins+='<div style="text-align:left;font-size:10px" >';ins+="<span style='color:navy;cursor:pointer;text-align:left;' >";ins+="<input style='cursor:pointer' type='checkbox' id='pararraios' 'checked' />Raios</span>";ins+='</div>';ins+='</div>';novoel.innerHTML=ins;novoel.style.borderColor="gray";document.body.appendChild(novoel);$i('pararraios').checked=true}else{if($i("mostradistancia_calculo")){$i("mostradistancia_calculo").innerHTML=""}}YAHOO.namespace("janelaDocamede.xp");YAHOO.janelaDocamede.xp.panel=new YAHOO.widget.Panel("mostradistancia",{width:220,fixedcenter:false,constraintoviewport:true,underlay:"none",close:true,visible:true,draggable:true,modal:false});YAHOO.janelaDocamede.xp.panel.render();YAHOO.janelaDocamede.xp.panel.moveTo(imagemxi+150,imagemyi);YAHOO.util.Event.addListener(YAHOO.janelaDocamede.xp.panel.close,"click",i3GEO.analise.medeDistancia.fechaJanela)},fechaJanela:function(){i3GEO.desenho.richdraw.fecha();if($i("pontosins")){document.body.removeChild($i("pontosins"))}YAHOO.util.Event.removeListener(YAHOO.janelaDocamede.xp.panel.close,"click");i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.clique()");i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento()");i3GEO.barraDeBotoes.ativaBotoes()},clique:function(){if(g_tipoacao=="mede"){var n=pontosdistobj.xpt.length;pontosdistobj.xpt[n]=objposicaocursor.ddx;pontosdistobj.ypt[n]=objposicaocursor.ddy;pontosdistobj.xtela[n]=objposicaocursor.telax;pontosdistobj.ytela[n]=objposicaocursor.telay;pontosdistobj.ximg[n]=objposicaocursor.imgx;pontosdistobj.yimg[n]=objposicaocursor.imgy;pontosdistobj.dist[n]=0;try{if(navn){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))}else{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])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n])}}catch(e){window.status=n+" erro ao desenhar a linha base "+e.message}if(n>0){var d=parseInt(i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy));pontosdistobj.dist[n]=d+pontosdistobj.dist[n-1];if($i("pararraios")&&$i("pararraios").checked==true){i3GEO.desenho.aplica("insereCirculo","",n);if(navm){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])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n])}}}i3GEO.util.insereMarca.cria(objposicaocursor.telax,objposicaocursor.telay,i3GEO.analise.medeDistancia.fechaJanela,"pontosins")}},movimento:function(){if(g_tipoacao=="mede"){if($i("mostradistancia"))$i("mostradistancia").style.display="block";var n=pontosdistobj.xpt.length;if(n>0){var d=i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);if(i3GEO.parametros.mapscale>500000){var d=parseInt(d)}else{d=d+"";d=d.split(".");var decimal=d[1].substr(0,3);d=d[0]+"."+decimal;d=d*1}var da=d+pontosdistobj.dist[n-1];if($i("mostradistancia_calculo")){$i("mostradistancia_calculo").innerHTML=" Dist acum.= "+da+" atual= "+d+" km"}i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n)}}}},medeArea:{inicia:function(){i3GEO.analise.medeArea.criaJanela();if(g_tipoacao!="area"){$i("mostraarea_calculo").innerHTML="";if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeArea.clique()")<0){i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeArea.clique()")}if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeArea.movimento()")<0){i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeArea.movimento()")}YAHOO.util.Event.addListener(YAHOO.janelaDocaarea.xp.panel.close,"click",i3GEO.analise.medeArea.fechaJanela);var temp=function(retorno){i3GEO.janela.fechaAguarde("i3GEO.atualiza");g_areapixel=retorno.data;if(g_areapixel<0){alert("Nao e possivel calcular a area. Entre em contato com o administrador do sistema.")}else{alert("Clique no mapa para desenhar o poligono. Clique duas vezes para concluir");i3GEO.barraDeBotoes.ativaIcone("area");g_tipoacao="area";i3GEO.desenho.criaContainerRichdraw();i3GEO.desenho.richdraw.lineColor="green";i3GEO.desenho.richdraw.lineWidth="2px"}};i3GEO.janela.abreAguarde("i3GEO.atualiza",$trad("o1"));i3GEO.php.areaPixel(temp,i3GEO.parametros.pixelsize)}else{i3GEO.desenho.richdraw.fecha()}},criaJanela:function(){if(!$i("mostraarea")){var novoel=document.createElement("div");novoel.id="mostraarea";var 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>";ins+='<div class="bd" style="text-align:left;padding:3px;" >';ins+='<div style="text-align:left;padding:3px;font-size:10px" id="mostraarea_calculo" ></div>';ins+='</div>';novoel.innerHTML=ins;novoel.style.borderColor="gray";document.body.appendChild(novoel)}YAHOO.namespace("janelaDocaarea.xp");YAHOO.janelaDocaarea.xp.panel=new YAHOO.widget.Panel("mostraarea",{width:220,fixedcenter:false,constraintoviewport:true,underlay:"none",close:true,visible:true,draggable:true,modal:false});YAHOO.janelaDocaarea.xp.panel.render();YAHOO.janelaDocaarea.xp.panel.moveTo(imagemxi+150,imagemyi)},fechaJanela:function(){i3GEO.desenho.richdraw.fecha();if($i("pontosArea")){document.body.removeChild($i("pontosArea"))}i3GEO.eventos.MOUSECLIQUE.remove("cliqueArea()");i3GEO.eventos.MOUSEMOVE.remove("moveArea()");i3GEO.barraDeBotoes.ativaBotoes()},clique:function(){if(g_tipoacao=="area"){var n=pontosdistobj.xpt.length;pontosdistobj.xpt[n]=objposicaocursor.ddx;pontosdistobj.ypt[n]=objposicaocursor.ddy;pontosdistobj.xtela[n]=objposicaocursor.telax;pontosdistobj.ytela[n]=objposicaocursor.telay;pontosdistobj.ximg[n]=objposicaocursor.imgx;pontosdistobj.yimg[n]=objposicaocursor.imgy;pontosdistobj.dist[n]=0;if(n==0){try{if(navn){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)}else{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])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n],(pontosdistobj.ximg[0])-(i3GEO.parametros.w/2),pontosdistobj.yimg[0])}}catch(e){}}try{if(navn){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)}else{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])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n])}}catch(e){}var m=i3GEO.calculo.area(pontosdistobj,g_areapixel);if($i("mostraarea_calculo")){$i("mostraarea_calculo").innerHTML="<br>m2</b>= "+m+"<br><b>km2</b>= "+m/1000000+"<br><b>ha</b>= "+m/10000}if(n>3){}i3GEO.util.insereMarca.cria(objposicaocursor.telax,objposicaocursor.telay,i3GEO.analise.medeArea.fechaJanela,"pontosArea")}},movimento:function(){if(g_tipoacao=="area"){var n=pontosdistobj.xpt.length;if(n>0){var d=i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);if(i3GEO.parametros.mapscale>500000){var d=parseInt(d)}else{d=d+"";d=d.split(".");var decimal=d[1].substr(0,3);d=d[0]+"."+decimal;d=d*1}var da=d+pontosdistobj.dist[n-1];if(navn){i3GEO.desenho.aplica("resizePoligono",pontosdistobj.linhastemp,0)}i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n)}}}}}; | |
2 | 1 | \ No newline at end of file |
2 | +if(typeof(i3GEO)=='undefined'){i3GEO=new Array()}i3GEO.analise={dialogo:{gradePontos:function(){i3GEO.janela.cria("400px","250px",i3GEO.configura.locaplic+"/ferramentas/gradepontos/index.htm","","","Grade de pontos <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=15' > </a>")},gradePol:function(){i3GEO.janela.cria("400px","250px",i3GEO.configura.locaplic+"/ferramentas/gradepol/index.htm","","","Grade de polígonos <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=14' > </a>")},gradeHex:function(){i3GEO.janela.cria("400px","250px",i3GEO.configura.locaplic+"/ferramentas/gradehex/index.htm","","","Grade de hexágonos <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=16' > </a>")},analisaGeometrias:function(){g_tipoacao="selecao";i3GEO.temaAtivo="";i3GEO.janela.cria("500px","400px",i3GEO.configura.locaplic+'/ferramentas/analisageometrias/index.htm',"","","Análise de geometrias <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=23' > </a>")},pontosdistri:function(){if(i3GEO.parametros.r=="nao"){alert("Opção não disponível")}else{i3GEO.janela.cria("400px","300px",i3GEO.configura.locaplic+"/ferramentas/pontosdistri/index.htm","","","Distribuição de pontos <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=20' > </a>")}},pontoempoligono:function(){i3GEO.janela.cria("400px","250px",i3GEO.configura.locaplic+"/ferramentas/pontoempoligono/index.htm","","","Ponto em polígono <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=18' > </a>")},nptPol:function(){i3GEO.janela.cria("400px","200px",i3GEO.configura.locaplic+"/ferramentas/nptpol/index.htm","","","Pontos por polígono <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=19' > </a>")},buffer:function(){i3GEO.janela.cria("400px","180px",i3GEO.configura.locaplic+"/ferramentas/buffer/index.htm","","","Entorno <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=24' > </a>")},distanciaptpt:function(){i3GEO.janela.cria("400px","220px",i3GEO.configura.locaplic+"/ferramentas/distanciaptpt/index.htm","","","Distância <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=17' > </a>")},centroide:function(){i3GEO.janela.cria("400px","180px",i3GEO.configura.locaplic+"/ferramentas/centroide/index.htm","","","Centróide <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=21' > </a>")},dissolve:function(){i3GEO.janela.cria("400px","230px",i3GEO.configura.locaplic+"/ferramentas/dissolve/index.htm","","","Dissolve <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=22' > </a>")},agrupaElementos:function(){i3GEO.janela.cria("400px","230px",i3GEO.configura.locaplic+"/ferramentas/agrupaelementos/index.htm","","","Agrupa <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=25' > </a>")}},medeDistancia:{inicia:function(){pontosdistobj=new Array();i3GEO.analise.medeDistancia.criaJanela();if(g_tipoacao!="mede"){if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()")<0){i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()")}if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()")<0){i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()")}$i("mostradistancia").style.display="block";i3GEO.desenho.criaContainerRichdraw();i3GEO.desenho.richdraw.lineColor="black";i3GEO.desenho.richdraw.lineWidth="1px";g_tipoacao="mede"}else{i3GEO.desenho.richdraw.fecha();if($i("mostradistancia")){$i("mostradistancia").style.display="none"}if($i("pontosins")){$i("pontosins").style.display="none"}}},criaJanela:function(){if(!$i("mostradistancia")){var novoel=document.createElement("div");novoel.id="mostradistancia";var ins='<div class="hd" > <a class=ajuda_usuario target=_blank href="'+i3GEO.configura.locaplic+'/ajuda_usuario.php?idcategoria=6&idajuda=50" > </a></div>';ins+='<div class="bd" style="text-align:left;padding:3px;" >';ins+='<div style="text-align:left;padding:3px;" id="mostradistancia_calculo" ></div>';ins+='<div style="text-align:left;font-size:10px" >';ins+="<span style='color:navy;cursor:pointer;text-align:left;' >";ins+="<input style='cursor:pointer' type='checkbox' id='pararraios' 'checked' />Raios</span>";ins+='</div>';ins+='</div>';novoel.innerHTML=ins;novoel.style.borderColor="gray";document.body.appendChild(novoel);$i('pararraios').checked=true}else{if($i("mostradistancia_calculo")){$i("mostradistancia_calculo").innerHTML=""}}YAHOO.namespace("janelaDocamede.xp");YAHOO.janelaDocamede.xp.panel=new YAHOO.widget.Panel("mostradistancia",{width:300,fixedcenter:false,constraintoviewport:true,underlay:"none",close:true,visible:true,draggable:true,modal:false});YAHOO.janelaDocamede.xp.panel.render();YAHOO.janelaDocamede.xp.panel.moveTo(imagemxi+150,imagemyi);YAHOO.util.Event.addListener(YAHOO.janelaDocamede.xp.panel.close,"click",i3GEO.analise.medeDistancia.fechaJanela)},fechaJanela:function(){i3GEO.desenho.richdraw.fecha();if($i("pontosins")){document.body.removeChild($i("pontosins"))}YAHOO.util.Event.removeListener(YAHOO.janelaDocamede.xp.panel.close,"click");i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.clique()");i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento()");i3GEO.barraDeBotoes.ativaBotoes()},clique:function(){if(g_tipoacao=="mede"){var n=pontosdistobj.xpt.length;pontosdistobj.xpt[n]=objposicaocursor.ddx;pontosdistobj.ypt[n]=objposicaocursor.ddy;pontosdistobj.xtela[n]=objposicaocursor.telax;pontosdistobj.ytela[n]=objposicaocursor.telay;pontosdistobj.ximg[n]=objposicaocursor.imgx;pontosdistobj.yimg[n]=objposicaocursor.imgy;pontosdistobj.dist[n]=0;try{if(navn){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))}else{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])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n])}}catch(e){window.status=n+" erro ao desenhar a linha base "+e.message}if(n>0){var d=parseInt(i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy));pontosdistobj.dist[n]=d+pontosdistobj.dist[n-1];if($i("pararraios")&&$i("pararraios").checked==true){i3GEO.desenho.aplica("insereCirculo","",n);if(navm){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])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n])}}}i3GEO.util.insereMarca.cria(objposicaocursor.telax,objposicaocursor.telay,i3GEO.analise.medeDistancia.fechaJanela,"pontosins")}},movimento:function(){if(g_tipoacao=="mede"){if($i("mostradistancia"))$i("mostradistancia").style.display="block";var n=pontosdistobj.xpt.length;if(n>0){var d=i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);var r=i3GEO.calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);var r=i3GEO.calculo.dd2dms(r,r);var r=r[0];if(i3GEO.parametros.mapscale>500000){var d=parseInt(d)}else{d=d+"";d=d.split(".");var decimal=d[1].substr(0,3);d=d[0]+"."+decimal;d=d*1}var da=d+pontosdistobj.dist[n-1];if($i("mostradistancia_calculo")){$i("mostradistancia_calculo").innerHTML=" Dist acum.= "+da+" atual= "+d+" km <br> Direção (DMS)= "+r}i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n)}}}},medeArea:{inicia:function(){i3GEO.analise.medeArea.criaJanela();if(g_tipoacao!="area"){$i("mostraarea_calculo").innerHTML="";if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeArea.clique()")<0){i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeArea.clique()")}if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeArea.movimento()")<0){i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeArea.movimento()")}YAHOO.util.Event.addListener(YAHOO.janelaDocaarea.xp.panel.close,"click",i3GEO.analise.medeArea.fechaJanela);var temp=function(retorno){i3GEO.janela.fechaAguarde("i3GEO.atualiza");g_areapixel=retorno.data;if(g_areapixel<0){alert("Nao e possivel calcular a area. Entre em contato com o administrador do sistema.")}else{alert("Clique no mapa para desenhar o poligono. Clique duas vezes para concluir");i3GEO.barraDeBotoes.ativaIcone("area");g_tipoacao="area";i3GEO.desenho.criaContainerRichdraw();i3GEO.desenho.richdraw.lineColor="green";i3GEO.desenho.richdraw.lineWidth="2px"}};i3GEO.janela.abreAguarde("i3GEO.atualiza",$trad("o1"));i3GEO.php.areaPixel(temp,i3GEO.parametros.pixelsize)}else{i3GEO.desenho.richdraw.fecha()}},criaJanela:function(){if(!$i("mostraarea")){var novoel=document.createElement("div");novoel.id="mostraarea";var 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>";ins+='<div class="bd" style="text-align:left;padding:3px;" >';ins+='<div style="text-align:left;padding:3px;font-size:10px" id="mostraarea_calculo" ></div>';ins+='</div>';novoel.innerHTML=ins;novoel.style.borderColor="gray";document.body.appendChild(novoel)}YAHOO.namespace("janelaDocaarea.xp");YAHOO.janelaDocaarea.xp.panel=new YAHOO.widget.Panel("mostraarea",{width:220,fixedcenter:false,constraintoviewport:true,underlay:"none",close:true,visible:true,draggable:true,modal:false});YAHOO.janelaDocaarea.xp.panel.render();YAHOO.janelaDocaarea.xp.panel.moveTo(imagemxi+150,imagemyi)},fechaJanela:function(){i3GEO.desenho.richdraw.fecha();if($i("pontosArea")){document.body.removeChild($i("pontosArea"))}i3GEO.eventos.MOUSECLIQUE.remove("cliqueArea()");i3GEO.eventos.MOUSEMOVE.remove("moveArea()");i3GEO.barraDeBotoes.ativaBotoes()},clique:function(){if(g_tipoacao=="area"){var n=pontosdistobj.xpt.length;pontosdistobj.xpt[n]=objposicaocursor.ddx;pontosdistobj.ypt[n]=objposicaocursor.ddy;pontosdistobj.xtela[n]=objposicaocursor.telax;pontosdistobj.ytela[n]=objposicaocursor.telay;pontosdistobj.ximg[n]=objposicaocursor.imgx;pontosdistobj.yimg[n]=objposicaocursor.imgy;pontosdistobj.dist[n]=0;if(n==0){try{if(navn){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)}else{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])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n],(pontosdistobj.ximg[0])-(i3GEO.parametros.w/2),pontosdistobj.yimg[0])}}catch(e){}}try{if(navn){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)}else{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])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n])}}catch(e){}var m=i3GEO.calculo.area(pontosdistobj,g_areapixel);if($i("mostraarea_calculo")){$i("mostraarea_calculo").innerHTML="<br>m2</b>= "+m+"<br><b>km2</b>= "+m/1000000+"<br><b>ha</b>= "+m/10000}if(n>3){}i3GEO.util.insereMarca.cria(objposicaocursor.telax,objposicaocursor.telay,i3GEO.analise.medeArea.fechaJanela,"pontosArea")}},movimento:function(){if(g_tipoacao=="area"){var n=pontosdistobj.xpt.length;if(n>0){var d=i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);if(i3GEO.parametros.mapscale>500000){var d=parseInt(d)}else{d=d+"";d=d.split(".");var decimal=d[1].substr(0,3);d=d[0]+"."+decimal;d=d*1}var da=d+pontosdistobj.dist[n-1];if(navn){i3GEO.desenho.aplica("resizePoligono",pontosdistobj.linhastemp,0)}i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n)}}}}}; | |
3 | 3 | \ No newline at end of file | ... | ... |
classesjs/compactados/classe_calculo_compacto.js
1 | -if(typeof(i3GEO)=='undefined'){i3GEO=new Array()}i3GEO.calculo={dms2dd:function(cd,cm,cs){try{var sinal='positivo';if(cd<0){cd=cd*-1;sinal='negativo'}spm=cs/3600;mpg=cm/60;var dd=(cd*1)+(mpg*1)+(spm*1);if(sinal=='negativo'){dd=dd*-1}return(dd)}catch(e){return(0)}},dd2tela:function(vx,vy,docmapa,ext,cellsize){try{if(i3GEO.interface.ATUAL=="googlemaps"){var pos=i3GEO.util.pegaPosicaoObjeto($i(i3GEO.interface.IDCORPO));var latlng=new GLatLng(vy,vx);var xyn=i3GeoMap.fromLatLngToContainerPixel(latlng);var xy=new Array();return[(xyn.x)+pos[0],(xyn.y)+pos[1]]}if(arguments.length==3){var ext=i3GEO.parametros.mapexten;var cellsize=i3GEO.parametros.pixelsize}if(arguments.length==4){var cellsize=i3GEO.parametros.pixelsize}if(!docmapa){var docmapa=window.document}var dc=docmapa;var pos=i3GEO.util.pegaPosicaoObjeto(dc);var imgext=ext;var imgext=imgext.split(" ");vx=(vx*1)-(imgext[0]*1);vy=(vy*-1)+(imgext[3]*1);c=cellsize*1;return[(vx/c)+pos[0],(vy/c)+pos[1]]}catch(e){return(new Array())}},dd2dms:function(x,y){var m=0;var s=0;var dx=parseInt(x);if(dx>0){var restod=x-dx}if(dx<0){restod=(x*-1)-(dx*-1)}dx=dx;if(restod!=0){var mm=restod*60;var m=parseInt(restod*60);var restos=mm-m;var mx=m;if(restos!=0){var s=restos*60;var s=(s+"_").substring(0,5);var sx=s}else{s="00.00"}}else{var mx="00";var sx="00.00"}if(m.length==2){m="0"+m+""}if(s*1<10){s="0"+s}var xv=dx+" "+mx+" "+sx;var m=0;var s=0;var dy=parseInt(y);if(dy>0){var restod=y-dy}if(dy<0){var restod=(y*-1)-(dy*-1)}dy=dy;if(restod!=0){var mm=restod*60;var m=parseInt(restod*60);var restos=mm-m;var my=m;if(restos!=0){var s=restos*60;s=(s+"_").substring(0,5);var sy=s}else{var s="00.00"}}else{var my="00";var sy="00.00"}if(m.length==2){m="0"+m}if(s*1<10){s="0"+s}var yv=dy+" "+my+" "+sy;var res=new Array();res[0]=xv;res[1]=yv;return res},tela2dd:function(xfign,yfign,g_celula,imgext){try{if(navm){xfign=xfign-2.2;yfign=yfign-2.7}else{xfign=xfign-0.12;yfign=yfign-1.05}var nx=g_celula*xfign;var ny=g_celula*yfign;var amext=imgext.split(" ");var longdd=(amext[0]*1)+nx;var latdd=(amext[3]*1)-ny;var res=new Array();res[0]=longdd;res[1]=latdd;return(res)}catch(e){return(0)}},area:function(pontos,pixel){try{if(pontos.xpt.length>2){var $array_length=pontos.xpt.length;pontos.xtela.push(pontos.xtela[0]);pontos.ytela.push(pontos.ytela[0]);pontos.xtela.push(pontos.xtela[0]);pontos.ytela.push(pontos.ytela[1]);var $polygon_area=0;for(var $i=0;$i<=$array_length;$i++){$polygon_area+=((pontos.xtela[$i]*pontos.ytela[$i+1])-(pontos.ytela[$i]*pontos.xtela[$i+1]))}$polygon_area=Math.abs($polygon_area)/2}else{$polygon_area="Sao necessarios pelo menos tres pontos para o calculo"}return $polygon_area*pixel}catch(e){return(0)}},distancia:function(lon1,lat1,lon2,lat2){var R=6371;var dLat=((lat2-lat1))*Math.PI/180;var dLon=((lon2-lon1))*Math.PI/180;var a=Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(lat1*Math.PI/180)*Math.cos(lat2*Math.PI/180)*Math.sin(dLon/2)*Math.sin(dLon/2);var c=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));var d=R*c;return d},rect2ext:function(idrect,mapext,pixel){eval('pix = parseInt(document.getElementById("'+idrect+'").style.'+g_tipoleft+")");eval('piy = parseInt(document.getElementById("'+idrect+'").style.'+g_tipotop+")");if($i(idrect)){var bx=$i(idrect);var bxs=bx.style}else{alert("Box nao encontrado");return}var pos=i3GEO.util.pegaPosicaoObjeto($i("img"));var xfig0=parseInt(bxs.width)-pos[0];var yfig0=parseInt(bxs.height)-pos[1];var xfig=pix+(parseInt(bxs.width))-pos[0];var yfig=piy+(parseInt(bxs.height))-pos[1];var amext=mapext.split(" ");var dx=((amext[0]*-1)-(amext[2]*-1))/-1;var dy=((amext[1]*1)-(amext[3]*1))/-1;if(dy<0)dy=dy*-1;var nx=pixel*xfig;var ny=pixel*yfig;var x1=(amext[0]*1)+nx;var y1=(amext[3]*1)-ny;var xfig=pix-pos[0];var yfig=piy-pos[1];if(dy<0)dy=dy*-1;var nx=pixel*xfig;var ny=pixel*yfig;var x2=(amext[0]*1)+nx;var y2=(amext[3]*1)-ny;var v=x2+" "+y2+" "+x1+" "+y1;var res=new Array(v,x1,y1,x2,y2);return(res)},ext2rect:function(idrect,mapext,boxext,pixel,documento){var rectbox=boxext.split(" ");var rectmap=mapext.split(" ");var xyMin=i3GEO.calculo.dd2tela(rectbox[0],rectbox[1],documento,boxext,pixel);var xyMax=i3GEO.calculo.dd2tela(rectbox[2],rectbox[3],documento,boxext,pixel);var w=xyMax[0]-xyMin[0];var h=xyMin[1]-xyMax[1];var tl=i3GEO.calculo.dd2tela(rectbox[0],rectbox[3],documento,mapext,pixel);var pos=i3GEO.util.pegaPosicaoObjeto(documento);var t=tl[1]-pos[1];var l=tl[0]-pos[0];var d="block";if($i(idrect)){var box=$i(idrect);box.style.width=w;box.style.height=h;box.style.top=t+"px";box.style.left=l+"px";box.style.display=d}return new Array(w,h,xyMax[1],xyMin[0])}}; | |
2 | 1 | \ No newline at end of file |
2 | +if(typeof(i3GEO)=='undefined'){i3GEO=new Array()}i3GEO.calculo={dms2dd:function(cd,cm,cs){try{var sinal='positivo';if(cd<0){cd=cd*-1;sinal='negativo'}spm=cs/3600;mpg=cm/60;var dd=(cd*1)+(mpg*1)+(spm*1);if(sinal=='negativo'){dd=dd*-1}return(dd)}catch(e){return(0)}},dd2tela:function(vx,vy,docmapa,ext,cellsize){try{if(i3GEO.interface.ATUAL=="googlemaps"){var pos=i3GEO.util.pegaPosicaoObjeto($i(i3GEO.interface.IDCORPO));var latlng=new GLatLng(vy,vx);var xyn=i3GeoMap.fromLatLngToContainerPixel(latlng);var xy=new Array();return[(xyn.x)+pos[0],(xyn.y)+pos[1]]}if(arguments.length==3){var ext=i3GEO.parametros.mapexten;var cellsize=i3GEO.parametros.pixelsize}if(arguments.length==4){var cellsize=i3GEO.parametros.pixelsize}if(!docmapa){var docmapa=window.document}var dc=docmapa;var pos=i3GEO.util.pegaPosicaoObjeto(dc);var imgext=ext;var imgext=imgext.split(" ");vx=(vx*1)-(imgext[0]*1);vy=(vy*-1)+(imgext[3]*1);c=cellsize*1;return[(vx/c)+pos[0],(vy/c)+pos[1]]}catch(e){return(new Array())}},dd2dms:function(x,y){var m=0;var s=0;var dx=parseInt(x);if(dx>0){var restod=x-dx}if(dx<0){restod=(x*-1)-(dx*-1)}dx=dx;if(restod!=0){var mm=restod*60;var m=parseInt(restod*60);var restos=mm-m;var mx=m;if(restos!=0){var s=restos*60;var s=(s+"_").substring(0,5);var sx=s}else{s="00.00"}}else{var mx="00";var sx="00.00"}if(m.length==2){m="0"+m+""}if(s*1<10){s="0"+s}var xv=dx+" "+mx+" "+sx;var m=0;var s=0;var dy=parseInt(y);if(dy>0){var restod=y-dy}if(dy<0){var restod=(y*-1)-(dy*-1)}dy=dy;if(restod!=0){var mm=restod*60;var m=parseInt(restod*60);var restos=mm-m;var my=m;if(restos!=0){var s=restos*60;s=(s+"_").substring(0,5);var sy=s}else{var s="00.00"}}else{var my="00";var sy="00.00"}if(m.length==2){m="0"+m}if(s*1<10){s="0"+s}var yv=dy+" "+my+" "+sy;var res=new Array();res[0]=xv;res[1]=yv;return res},tela2dd:function(xfign,yfign,g_celula,imgext){try{if(navm){xfign=xfign-2.2;yfign=yfign-2.7}else{xfign=xfign-0.12;yfign=yfign-1.05}var nx=g_celula*xfign;var ny=g_celula*yfign;var amext=imgext.split(" ");var longdd=(amext[0]*1)+nx;var latdd=(amext[3]*1)-ny;var res=new Array();res[0]=longdd;res[1]=latdd;return(res)}catch(e){return(0)}},area:function(pontos,pixel){try{if(pontos.xpt.length>2){var $array_length=pontos.xpt.length;pontos.xtela.push(pontos.xtela[0]);pontos.ytela.push(pontos.ytela[0]);pontos.xtela.push(pontos.xtela[0]);pontos.ytela.push(pontos.ytela[1]);var $polygon_area=0;for(var $i=0;$i<=$array_length;$i++){$polygon_area+=((pontos.xtela[$i]*pontos.ytela[$i+1])-(pontos.ytela[$i]*pontos.xtela[$i+1]))}$polygon_area=Math.abs($polygon_area)/2}else{$polygon_area="Sao necessarios pelo menos tres pontos para o calculo"}return $polygon_area*pixel}catch(e){return(0)}},distancia:function(lon1,lat1,lon2,lat2){var R=6371;var dLat=((lat2-lat1))*Math.PI/180;var dLon=((lon2-lon1))*Math.PI/180;var a=Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(lat1*Math.PI/180)*Math.cos(lat2*Math.PI/180)*Math.sin(dLon/2)*Math.sin(dLon/2);var c=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));var d=R*c;return d},direcao:function(lon1,lat1,lon2,lat2){lat1=lat1*(Math.PI/180);lat2=lat2*(Math.PI/180);var dLon=(lon2-lon1)*(Math.PI/180);var y=Math.sin(dLon)*Math.cos(lat2);var x=Math.cos(lat1)*Math.sin(lat2)-Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon);var r=Math.atan2(y,x);var r=r*180/Math.PI;var r=r+360;return r%360},rect2ext:function(idrect,mapext,pixel){eval('pix = parseInt(document.getElementById("'+idrect+'").style.'+g_tipoleft+")");eval('piy = parseInt(document.getElementById("'+idrect+'").style.'+g_tipotop+")");if($i(idrect)){var bx=$i(idrect);var bxs=bx.style}else{alert("Box nao encontrado");return}var pos=i3GEO.util.pegaPosicaoObjeto($i("img"));var xfig0=parseInt(bxs.width)-pos[0];var yfig0=parseInt(bxs.height)-pos[1];var xfig=pix+(parseInt(bxs.width))-pos[0];var yfig=piy+(parseInt(bxs.height))-pos[1];var amext=mapext.split(" ");var dx=((amext[0]*-1)-(amext[2]*-1))/-1;var dy=((amext[1]*1)-(amext[3]*1))/-1;if(dy<0)dy=dy*-1;var nx=pixel*xfig;var ny=pixel*yfig;var x1=(amext[0]*1)+nx;var y1=(amext[3]*1)-ny;var xfig=pix-pos[0];var yfig=piy-pos[1];if(dy<0)dy=dy*-1;var nx=pixel*xfig;var ny=pixel*yfig;var x2=(amext[0]*1)+nx;var y2=(amext[3]*1)-ny;var v=x2+" "+y2+" "+x1+" "+y1;var res=new Array(v,x1,y1,x2,y2);return(res)},ext2rect:function(idrect,mapext,boxext,pixel,documento){var rectbox=boxext.split(" ");var rectmap=mapext.split(" ");var xyMin=i3GEO.calculo.dd2tela(rectbox[0],rectbox[1],documento,boxext,pixel);var xyMax=i3GEO.calculo.dd2tela(rectbox[2],rectbox[3],documento,boxext,pixel);var w=xyMax[0]-xyMin[0];var h=xyMin[1]-xyMax[1];var tl=i3GEO.calculo.dd2tela(rectbox[0],rectbox[3],documento,mapext,pixel);var pos=i3GEO.util.pegaPosicaoObjeto(documento);var t=tl[1]-pos[1];var l=tl[0]-pos[0];var d="block";if($i(idrect)){var box=$i(idrect);box.style.width=w;box.style.height=h;box.style.top=t+"px";box.style.left=l+"px";box.style.display=d}return new Array(w,h,xyMax[1],xyMin[0])}}; | |
3 | 3 | \ No newline at end of file | ... | ... |
classesjs/i3geo_tudo_compacto.js
... | ... | @@ -10300,6 +10300,18 @@ i3GEO.calculo = { |
10300 | 10300 | var d = R * c; |
10301 | 10301 | return d; |
10302 | 10302 | }, |
10303 | + direcao: function(lon1,lat1,lon2,lat2){ | |
10304 | + lat1 = lat1 * (Math.PI / 180); | |
10305 | + lat2 = lat2 * (Math.PI / 180); | |
10306 | + var dLon = (lon2-lon1) * (Math.PI / 180); | |
10307 | + var y = Math.sin(dLon) * Math.cos(lat2); | |
10308 | + var x = Math.cos(lat1)*Math.sin(lat2) - | |
10309 | + Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon); | |
10310 | + var r = Math.atan2(y, x); | |
10311 | + var r = r * 180 / Math.PI; | |
10312 | + var r = r + 360; | |
10313 | + return r % 360; | |
10314 | + }, | |
10303 | 10315 | /* |
10304 | 10316 | Function: rect2ext |
10305 | 10317 | |
... | ... | @@ -12601,7 +12613,7 @@ i3GEO.analise = { |
12601 | 12613 | } |
12602 | 12614 | |
12603 | 12615 | YAHOO.namespace("janelaDocamede.xp"); |
12604 | - YAHOO.janelaDocamede.xp.panel = new YAHOO.widget.Panel("mostradistancia", {width:220,fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); | |
12616 | + YAHOO.janelaDocamede.xp.panel = new YAHOO.widget.Panel("mostradistancia", {width:300,fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); | |
12605 | 12617 | YAHOO.janelaDocamede.xp.panel.render(); |
12606 | 12618 | YAHOO.janelaDocamede.xp.panel.moveTo(imagemxi+150,imagemyi); |
12607 | 12619 | YAHOO.util.Event.addListener(YAHOO.janelaDocamede.xp.panel.close, "click", i3GEO.analise.medeDistancia.fechaJanela); |
... | ... | @@ -12665,6 +12677,9 @@ i3GEO.analise = { |
12665 | 12677 | var n = pontosdistobj.xpt.length; |
12666 | 12678 | if (n > 0){ |
12667 | 12679 | var d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); |
12680 | + var r = i3GEO.calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); | |
12681 | + var r = i3GEO.calculo.dd2dms(r,r); | |
12682 | + var r = r[0]; | |
12668 | 12683 | if (i3GEO.parametros.mapscale > 500000) |
12669 | 12684 | {var d = parseInt(d);} |
12670 | 12685 | else{ |
... | ... | @@ -12675,8 +12690,9 @@ i3GEO.analise = { |
12675 | 12690 | d = d * 1; |
12676 | 12691 | } |
12677 | 12692 | var da = d + pontosdistobj.dist[n-1]; |
12678 | - if ($i("mostradistancia_calculo")) | |
12679 | - {$i("mostradistancia_calculo").innerHTML = " Dist acum.= "+da+" atual= "+d+" km";} | |
12693 | + if ($i("mostradistancia_calculo")){ | |
12694 | + $i("mostradistancia_calculo").innerHTML = " Dist acum.= "+da+" atual= "+d+" km <br> Direção (DMS)= "+r; | |
12695 | + } | |
12680 | 12696 | i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n); |
12681 | 12697 | } |
12682 | 12698 | } | ... | ... |
classesjs/i3geo_tudo_compacto.js.php
... | ... | @@ -10300,6 +10300,18 @@ i3GEO.calculo = { |
10300 | 10300 | var d = R * c; |
10301 | 10301 | return d; |
10302 | 10302 | }, |
10303 | + direcao: function(lon1,lat1,lon2,lat2){ | |
10304 | + lat1 = lat1 * (Math.PI / 180); | |
10305 | + lat2 = lat2 * (Math.PI / 180); | |
10306 | + var dLon = (lon2-lon1) * (Math.PI / 180); | |
10307 | + var y = Math.sin(dLon) * Math.cos(lat2); | |
10308 | + var x = Math.cos(lat1)*Math.sin(lat2) - | |
10309 | + Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon); | |
10310 | + var r = Math.atan2(y, x); | |
10311 | + var r = r * 180 / Math.PI; | |
10312 | + var r = r + 360; | |
10313 | + return r % 360; | |
10314 | + }, | |
10303 | 10315 | /* |
10304 | 10316 | Function: rect2ext |
10305 | 10317 | |
... | ... | @@ -12601,7 +12613,7 @@ i3GEO.analise = { |
12601 | 12613 | } |
12602 | 12614 | |
12603 | 12615 | YAHOO.namespace("janelaDocamede.xp"); |
12604 | - YAHOO.janelaDocamede.xp.panel = new YAHOO.widget.Panel("mostradistancia", {width:220,fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); | |
12616 | + YAHOO.janelaDocamede.xp.panel = new YAHOO.widget.Panel("mostradistancia", {width:300,fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); | |
12605 | 12617 | YAHOO.janelaDocamede.xp.panel.render(); |
12606 | 12618 | YAHOO.janelaDocamede.xp.panel.moveTo(imagemxi+150,imagemyi); |
12607 | 12619 | YAHOO.util.Event.addListener(YAHOO.janelaDocamede.xp.panel.close, "click", i3GEO.analise.medeDistancia.fechaJanela); |
... | ... | @@ -12665,6 +12677,9 @@ i3GEO.analise = { |
12665 | 12677 | var n = pontosdistobj.xpt.length; |
12666 | 12678 | if (n > 0){ |
12667 | 12679 | var d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); |
12680 | + var r = i3GEO.calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); | |
12681 | + var r = i3GEO.calculo.dd2dms(r,r); | |
12682 | + var r = r[0]; | |
12668 | 12683 | if (i3GEO.parametros.mapscale > 500000) |
12669 | 12684 | {var d = parseInt(d);} |
12670 | 12685 | else{ |
... | ... | @@ -12675,8 +12690,9 @@ i3GEO.analise = { |
12675 | 12690 | d = d * 1; |
12676 | 12691 | } |
12677 | 12692 | var da = d + pontosdistobj.dist[n-1]; |
12678 | - if ($i("mostradistancia_calculo")) | |
12679 | - {$i("mostradistancia_calculo").innerHTML = " Dist acum.= "+da+" atual= "+d+" km";} | |
12693 | + if ($i("mostradistancia_calculo")){ | |
12694 | + $i("mostradistancia_calculo").innerHTML = " Dist acum.= "+da+" atual= "+d+" km <br> Direção (DMS)= "+r; | |
12695 | + } | |
12680 | 12696 | i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n); |
12681 | 12697 | } |
12682 | 12698 | } | ... | ... |
... | ... | @@ -0,0 +1,178 @@ |
1 | +SYMBOLSET ../symbols/simbolos.sym | |
2 | +FONTSET "../symbols/fontes.txt" | |
3 | +LAYER | |
4 | + NAME "glc2000" | |
5 | + TYPE RASTER | |
6 | + STATUS off | |
7 | + DATA "c:\temp\Grid\sam2000mon6\hdr.adf" | |
8 | + template "glc2000.htm" | |
9 | + METADATA | |
10 | + TPSHP "" | |
11 | + TEMA "Global Landcover 2000" | |
12 | + CLASSE "SIM" | |
13 | + TEXTO "" | |
14 | + TABELA "NAO" | |
15 | + R "RASTER" | |
16 | + ITENS "values,value_0,class" | |
17 | + ITENSDESC "Valores,Banda_0,Classe" | |
18 | + ESCALA "1000000" | |
19 | + EXTENSAO "-75.233614607 -33.7515829981 -27.592958622 5.272156" | |
20 | + END | |
21 | + TRANSPARENCY 60 | |
22 | +CLASS | |
23 | + NAME 'Corpo dágua' | |
24 | + EXPRESSION ([pixel] = 83 ) | |
25 | + COLOR 0 0 255 | |
26 | +END | |
27 | +CLASS | |
28 | + NAME 'Manguezal' | |
29 | + EXPRESSION ([pixel] = 30 ) | |
30 | + COLOR 237 161 237 | |
31 | +END | |
32 | +CLASS | |
33 | + NAME 'Igapó e várzea' | |
34 | + EXPRESSION ([pixel] = 31 ) | |
35 | + COLOR 237 0 255 | |
36 | +END | |
37 | +CLASS | |
38 | + NAME 'Flor. hidrófila' | |
39 | + EXPRESSION ([pixel] = 33 ) | |
40 | + COLOR 237 193 237 | |
41 | +END | |
42 | +CLASS | |
43 | + NAME 'Floresta ombrófila (úmida)' | |
44 | + EXPRESSION ([pixel] IN '10,11,12' ) | |
45 | + COLOR 0 204 0 | |
46 | +END | |
47 | +CLASS | |
48 | + NAME 'Flor. estacional semi-decidual (úmida)' | |
49 | + EXPRESSION ([pixel] IN '13,14' ) | |
50 | + COLOR 98 255 169 | |
51 | +END | |
52 | +CLASS | |
53 | + NAME 'Flor. estacional decidual (seca)' | |
54 | + EXPRESSION ([pixel] IN '20,21' ) | |
55 | + COLOR 140 255 0 | |
56 | +END | |
57 | +CLASS | |
58 | + NAME 'Flor. estacional semi-decidual (seca)' | |
59 | + EXPRESSION ([pixel] IN '22,23' ) | |
60 | + COLOR 0 255 0 | |
61 | +END | |
62 | +CLASS | |
63 | + NAME 'Flor. de transição semi-decidual (seca)' | |
64 | + EXPRESSION ([pixel] = 24 ) | |
65 | + COLOR 230 255 230 | |
66 | +END | |
67 | +CLASS | |
68 | + NAME 'Flor. latifoliada sempre-verde densa (temperada)' | |
69 | + EXPRESSION ([pixel] = 40 ) | |
70 | + COLOR 105 117 0 | |
71 | +END | |
72 | +CLASS | |
73 | + NAME 'Flor. latifoliada sempre-verde e mista de coníferas (temperada)' | |
74 | + EXPRESSION ([pixel] = 42 ) | |
75 | + COLOR 105 76 0 | |
76 | +END | |
77 | +CLASS | |
78 | + NAME 'Flor. estacional decidual (temperada)' | |
79 | + EXPRESSION ([pixel] IN '44,43' ) | |
80 | + COLOR 125 161 0 | |
81 | +END | |
82 | +CLASS | |
83 | + NAME 'Mosaico de veg. não arbórea degradada' | |
84 | + EXPRESSION ([pixel] = 51 ) | |
85 | + COLOR 207 171 0 | |
86 | +END | |
87 | +CLASS | |
88 | + NAME 'Mosaico de veg. arbórea degradada' | |
89 | + EXPRESSION ([pixel] = 52 ) | |
90 | + COLOR 255 120 8 | |
91 | +END | |
92 | +CLASS | |
93 | + NAME 'Floresta de montanha' | |
94 | + EXPRESSION ([pixel] IN '194,246,247,254,238,244,245,235,236,237,227,228,234,224,225,226,206,207,208,195,197,204,190,192,193,181,182,183,173,174,180,171,172,110,111,112,113,114,120,121,122,123,124,130,131,133,140,142,143,144,160,161,162,163,164,170' ) | |
95 | + COLOR 0 99 0 | |
96 | +END | |
97 | +CLASS | |
98 | + NAME 'Formação arbustiva fechada' | |
99 | + EXPRESSION ([pixel] = 64 ) | |
100 | + COLOR 159 81 44 | |
101 | +END | |
102 | +CLASS | |
103 | + NAME 'Formação arbustiva aberta' | |
104 | + EXPRESSION ([pixel] = 65 ) | |
105 | + COLOR 209 178 140 | |
106 | +END | |
107 | +CLASS | |
108 | + NAME 'Campinarana' | |
109 | + EXPRESSION ([pixel] = 66 ) | |
110 | + COLOR 159 32 239 | |
111 | +END | |
112 | +CLASS | |
113 | + NAME 'Campo rupestre' | |
114 | + EXPRESSION ([pixel] = 67 ) | |
115 | + COLOR 143 98 255 | |
116 | +END | |
117 | +CLASS | |
118 | + NAME 'Campo de altitude' | |
119 | + EXPRESSION ([pixel] IN '68,69' ) | |
120 | + COLOR 244 255 178 | |
121 | +END | |
122 | +CLASS | |
123 | + NAME 'Campo inundável' | |
124 | + EXPRESSION ([pixel] = 63 ) | |
125 | + COLOR 63 223 207 | |
126 | +END | |
127 | +CLASS | |
128 | + NAME 'Rocha e solo nu' | |
129 | + EXPRESSION ([pixel] = 80 ) | |
130 | + COLOR 180 178 204 | |
131 | +END | |
132 | +CLASS | |
133 | + NAME 'Estepe arbustiva pouco densa' | |
134 | + EXPRESSION ([pixel] = 75 ) | |
135 | + COLOR 255 192 202 | |
136 | +END | |
137 | +CLASS | |
138 | + NAME 'Estepe (campo aberto ou fechado)' | |
139 | + EXPRESSION ([pixel] IN '70,71' ) | |
140 | + COLOR 255 255 207 | |
141 | +END | |
142 | +CLASS | |
143 | + NAME 'Deserto' | |
144 | + EXPRESSION ([pixel] = 81 ) | |
145 | + COLOR 230 230 230 | |
146 | +END | |
147 | +CLASS | |
148 | + NAME 'Savana ou savana arbustiva' | |
149 | + EXPRESSION ([pixel] IN '60,61' ) | |
150 | + COLOR 255 208 0 | |
151 | +END | |
152 | +CLASS | |
153 | + NAME 'Neve eterna' | |
154 | + EXPRESSION ([pixel] = 84 ) | |
155 | + COLOR 255 255 255 | |
156 | +END | |
157 | +CLASS | |
158 | + NAME 'Área salinizada' | |
159 | + EXPRESSION ([pixel] IN '82' ) | |
160 | + COLOR 59 32 0 | |
161 | +END | |
162 | +CLASS | |
163 | + NAME 'Plantação florestal, reflorestamento' | |
164 | + EXPRESSION ([pixel] = 53 ) | |
165 | + COLOR 76 99 0 | |
166 | +END | |
167 | +CLASS | |
168 | + NAME 'Área urbana' | |
169 | + EXPRESSION ([pixel] = 90 ) | |
170 | + COLOR 250 0 0 | |
171 | +END | |
172 | +CLASS | |
173 | + NAME 'Agricultura intensiva' | |
174 | + EXPRESSION ([pixel] = 50 ) | |
175 | + COLOR 255 255 0 | |
176 | +END | |
177 | +END | |
178 | +END | ... | ... |