Foros del Web » Programando para Internet » Javascript »

Asignacion de cuadrantes a coordenadas geograficas ingresadas

Estas en el tema de Asignacion de cuadrantes a coordenadas geograficas ingresadas en el foro de Javascript en Foros del Web. Buenas tardes, reciban un cordial saludo, les escribo por el siguiente caso, a ver si me pueden dar una manito: En mi trabajo manejamos un ...
  #1 (permalink)  
Antiguo 18/01/2017, 15:26
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Asignacion de cuadrantes a coordenadas geograficas ingresadas

Buenas tardes, reciban un cordial saludo, les escribo por el siguiente caso, a ver si me pueden dar una manito:

En mi trabajo manejamos un mapa que esta dividido en cuadrantes o cuadriculas, el tamaño de estas cuadriculas es de 5x5, como se observa en la siguiente imagen:

El proceso para determinar en que cuadrante se ubica cada coordenada se realiza totalmente a mano, de la siguiente manera: Se toman solo los grados de cada coordenada, posteriormente se ubican en los ejes X e Y y con una regla se trazan las dos lineas, y desde el punto donde se intersectan se ubica dicho cuadrante. Este proceso se realiza a todas las bitacoras de pesca que se registran en el año (este año pasado se registraron cerca de 450 bitacoras entre todas las flotas pesqueras), estas se registran en Excel, y de ahi se comienza el largo proceso para los diferentes informes que se presentan a final de año; mi idea fue realizar un formulario de prueba donde se registren solo las coordenadas geograficas, posteriormente me hace el calculo en numero decimal y lo asigna a una caja de texto, hasta ahi todo esta bien. Para poder asignar los cuadrantes a las coordenadas registradas en las bitacoras, estableci valores de maximos y minimos tanto en la latidud como en la longitud, y de ahi parti para hacer los condicionales, pero no me salio al idea. Aqui les enviar el código html y javascript para hacer dichos calculos.
Código HTML:
<html>
<body>
<form name="form1" method="post" action="">
  <p>LATITUD:
        <input type="text" name="lat" id="lat" onKeyUp="masclat(this.value)" >
    LAT_DECIMAL:
   <input type="text" name="latd" id="latd">
  </p>
  <p>LONGITUD:
        <input type="text" name="lon" id="lon" onKeyUp="masclong(this.value)" >
    LONG_DECIMAL:
    <input type="text" name="lond" id="lond" >
  </p>
  <p>QD:
       <input type="text" name="qd" id="qd">
  </p>
</form>
</body>
</html> 
Y aqui va el codigo javascript para la mascara de grados y minutos, calculos a decimales y asignacion de cuadrante, en esta ultima funcion utilice como referencia la coordenada 10°28'N y 64°11'O, que se ubica en el cuadrante N° 22.
Código:
/****************************VALIDACION DE  LA LATITUD P/FORMULARIOS CON UNA SOLA POSICION********************************/
function masclat(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_coordl(); 
    } 
}     
function verifica_coordl(){ //Funcion que verifica las coordenadas de latitud correctas 
 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].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].latd.value = dec;      
}
/****************************VALIDACION DE LA LONGITUD P/FORMULARIOS CON UNA SOLA POSICION********************************/
function masclong(lon){ 
 var mylong = ''; 
 mylong = mylong + lon; 
 if (mylong.length == 2){ 
     mylong = mylong + '°'; 
     document.forms[0].lon.value = mylong; 
 } 
     if (mylong.length == 5){ 
         mylong = mylong + '´'; 
         document.forms[0].lon.value = mylong; 
         verifica_coordll(); 
     } 
}     
function verifica_coordll(){ //Funcion que verifica las coordenadas de longitud correctas
 m1= -1;
 var dec=''              
 gds = (document.forms[0].lon.value.substring(0,2)); 
 min = (document.forms[0].lon.value.substring(3,5));                            
 situacao = ""; // verifica grados y minutos 
 if ((gds < 00) || (gds > 80)){
     situacao = "falsa";
 }
     if (( min < 00) ||( min > 59)){ 
         situacao = "falsa"; 
     }                
         if (document.forms[0].lon.value == "") { 
             situacao = "falsa"; 
         } 
             if (situacao == "falsa") { 
                 alert("Posicion Invalida!"); 
                 document.forms[0].lon.focus(); 
              }
            dec = (parseFloat(gds) + (min / 60.0)) * m1;
            document.forms[0].lond.value = dec;
} 
function cuadrantes(){//Esta es la funcion que utilizo para los cuadrantes
	l = (document.forms[0].lat.value.substring(0,2));
	lo = (document.forms[0].lon.value.substring(0,2));
	latgr = parseFloat(l);
	longr = parseFloat(lo);	
	Alert(latgr,longr);
	if ((latgr >= 10) || (latgr <= 15) && (longr >= 60) || (longr <= 65)){
		document.forms[0].qd.value = 22;
		}
}
Que quiero: Extraer solo la parte de los grados de las posiciones para luego poder hacer las comparaciones, de manera q cuando inserte la posicion en grados y minutos (ya sea latitud o longitud) asigne el numero del cuadrante al campo de texto QD. No se si la funcion esta bien programada, pero asi como esta no funciona. Espero puedan ayudarme. Saludos..

Etiquetas: asignacion, coordenadas, funcion, html, input, text, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:19.