Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/06/2011, 09:15
Section1
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como hacer un conversor de coordenadas

Bunas chicos,

Ya he desarrollado el codigo para obtener la respuesta a mi pregunta... asi que como el conocimiento es para compartirlo y no para guardarlo para uno mismo... aqui os dejo el codigo.

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Calculadora - conversión de coordenadas</title>
 <script type="text/javascript" src="http://xxxxxxxxxx.xxxx/functions/usng.js"></script>
  <script type="text/javascript">// convert a latitude to deg and decimal minutes
 
            function lat2dm(input) {
 
               if (input > 0) {
 
                  return (deg2dm(input)+"N")
 
               }
 
               else {
 
                  return (deg2dm(input)+"S")
 
               }
 
            }
 
             
 
            // convert a latitude to deg and decimal minutes
 
            function lon2dm(input) {
 
               if (input > 0) {
 
                  return (deg2dm(input)+"E")
 
               }
 
               else {
 
                  return (deg2dm(input)+"W")
 
               }
 
            }
 
             
 
            // converts decimal degrees to degrees and decimal minutes
 
            // input is a float, return value a string
 
            function deg2dm(input) {
 
               var cdeg
 
               var cmin
 
               var deg = Math.floor(Math.abs(input))
 
               var min = (Math.abs(input) - deg)*60
 
            
 
               if (deg < 10) { cdeg = "0"+deg }
 
               else {cdeg = ""+deg }
 
               if (min < 10) { cmin = "0"+min.toFixed(3) }
 
               else {cmin = ""+min.toFixed(3) }
 
            
 
               return(cdeg+"-"+cmin)
 
            }
 
            
 
            
 
        // convert a latitude to deg-min-sec
 
            function lat2dms(input) {
 
               if (input > 0) {
 
                  return (deg2dms(input)+"N")
 
               }
 
               else {
 
                  return (deg2dms(input)+"S")
 
               }
 
            }
 
             
 
            // convert a latitude to deg-min-sec
 
            function lon2dms(input) {
 
               if (input > 0) {
 
                  return (deg2dms(input)+"E")
 
               }
 
               else {
 
                  return (deg2dms(input)+"W")
 
               }
 
            }
 
            
 
            // converts decimal degrees to deg-min-sec
 
            // input is a float, return value a string
 
            function deg2dms(input) {
 
               var cdeg
 
               var cmin    
 
               var csec
 
            
 
               var temp = Math.abs(input)
 
               var deg = Math.floor(temp)
 
               var min = Math.floor((temp - deg)*60)
 
               var sec = (((temp-deg)*60)-min)*60
 
            
 
            
 
               if (deg < 10) { cdeg = "0"+deg }
 
               else {cdeg = ""+deg }
 
            
 
               if (min < 10) { cmin = "0"+min }
 
               else {cmin = ""+min }
 
            
 
               if (sec < 10) { csec = "0"+sec.toFixed(1) }
 
               else {csec = ""+sec.toFixed(1) }
 
            
 
               return(cdeg+"-"+cmin+"-"+csec)
 
            }
 
        </script>
  
 </head>
<body onload="cambio1()">
<script type="text/javascript"> 
                     
                    
 
                function cambio1(){
 
                        pointy=<? echo $_GET["gradoslat"]; ?>;
 
                        pointx=<? echo $_GET["gradoslon"]; ?>;
 
                         
                        var northamerica=1
 
                        var ngCoords = LLtoUSNG(pointy,pointx, 5);
 
                        var mgrsCoords = LLtoMGRS(pointy,pointx, 5);
 
                        var utmcoords=[]
 
                        var zone
 
                        LLtoUTM(pointy,pointx,utmcoords,0)
 
                        zone = utmcoords[2]
 
                    
 
                        if (pointy>13 && pointy<90 && ((pointx<-46 && pointx>-180) || (pointx>169 && pointx<180))) { 
 
                            northamerica = 1
 
                        }
 
                        else {
 
                            northamerica = 0
 
                        }
 
                        
 
                        var utmx = utmcoords[0];
 
                        var utmy = utmcoords[1];
 
                        if (utmy < 0) { utmy+=10000000; }
 
 
 
        
 
                        document.getElementById("resultados").style.display="block";
 
                        document.getElementById("res").innerHTML= zone + " " + UTMLetterDesignator(pointy)+" " + utmx.toFixed(0) + " " + utmy.toFixed(0);
 
                        document.getElementById("res2").innerHTML=LLtoMGRS(pointy,pointx,4);
 
                        cres3=lat2dms(pointy) + ", " + lon2dms(pointx);
 
                        cres3=cres3.replace(/-/g," ");
 
                        cres3=cres3.replace("W"," O");
 
                        cres3=cres3.replace("E"," E");
 
                        cres3=cres3.replace("N"," N");
 
                        cres3=cres3.replace("S"," S");
 
                        document.getElementById("res3").innerHTML=cres3;
 
                        
 
                        cres4=lat2dm(pointy) + ", " + lon2dm(pointx);
 
                        cres4=cres4.replace(/-/g," ");
 
                        cres4=cres4.replace("W"," O");
 
                        cres4=cres4.replace("E"," E");
 
                        cres4=cres4.replace("N"," N");
 
                        cres4=cres4.replace("S"," S");
 
                        document.getElementById("res4").innerHTML=cres4;
 
                        document.getElementById("res5").innerHTML=pointy+", "+pointx;
 
                        initialize();
 
                        
 
                    }
 
                </script> <!--//-->
<form name='inputboxes'>
<div id="resultados" ><table><tr><td>UTM</td><td><span id="res"></span></td></tr><tr><td>MGRS</td><td><span id="res2"></span></td></tr><tr><td>G M S.s</td><td><span id="res3"></span></td></tr><tr><td>G M.m</td><td><span id="res4"></span></td></tr><tr><td>G.g</td><td><span id="res5"></span></td></tr></table></div></form>

</body></html>

Para invocarlo debeis usar las dos variables iniciales (gradoslat y gradoslon) junto a la url del archivo, que contengan las cordenadas basicas en grados..

Ejemplo: index3.php?gradoslat=53.5465&gradoslon=5.227

Un saludo y espero vuestras aportaciones.
__________________
Deja el mundo mejor que como lo encontraste... By B.P.