Mi sistema trabaja con coordenadas de latitud y longitud (Grados y Minutos), y tengo una funcion que genera la mascara de entrada y hace el calculo de conversion a decimales, hasta ahi todo bien. En mi form tengo un campo que me indica cuando al latitud es al Norte (1) o al Sur (2); cuanod la latitud esta registrada al norte, es decir 1, no tengo problemas, el detalle se me presenta cuando la latitud es igual a 2, ya que en la conversion se debe multiplicar por -1 para que de negativa. Les dejo als funciones que utilizo para generar mascara de entrada y hacer los calculos.
Código PHP:
    //Funcion que genera una mascara de entrada para la latitud
 function mascara_lat(lat){ 
              var mylat = ''; 
              mylat = mylat + lat; 
              if (mylat.length == 2){ 
                  mylat = mylat + '°'; 
                  document.forms[0].lat.value = mylat; 
              } 
              if (mylat.length == 5){ 
                  mylat = mylat + '´'; 
                  document.forms[0].lat.value = mylat; 
                  verifica_coord(); 
              } 
          } 
  //Funcion que verifica las coordenadas de latitud correctas       
         function verifica_coord(){ 
               m1= 1;
               
              var dec=''
              gds = (document.forms[0].lat.value.substring(0,2)); 
              min = (document.forms[0].lat.value.substring(3,5)); 
              
               situacao = ""; 
              // verifica grados y minutos
              if ((gds < 00) || (gds > 25)){
                  situacao = "falsa";
              }
              if (( min < 00) ||( min > 59)){ 
                  situacao = "falsa"; 
              } 
               if (document.forms[0].ns.value == 2) { //Aqui esta el detalle, nose si lo estoy haciendo bien
                  m1 = -1; 
              } 
               
              if (document.forms[0].lat.value == "") { 
                  situacao = "falsa"; 
              } 
 
              if (situacao == "falsa") { 
                  alert("Posicion Invalida!"); 
                  document.forms[0].lat.focus(); 
              } 
            dec = (parseFloat(gds) + (min / 60.0)) * m1;
            document.forms[0].xxxx.value = dec;
                
        } 
     
 



 Este tema le ha gustado a 1 personas
Este tema le ha gustado a 1 personas