Comunidad de diseño web y desarrollo en internet online

ayuda con aplicacion que utiliza Geolocation sensor

Citar            
MensajeEscrito el 22 May 2015 02:00 am
que tal soy bastante nuevo en esto, tengo una duda, estoy creando una aplicación para medir la distancia entre 2 puntos geográficos, por lo tanto necesito que las variables "lati" y "loni"(latitud y longitud inicial) almacenen la posición en coordenadas, para poderlas usar como un punto de partida o sea que queden estáticas, que no cambien, para asi calcular la distancia entre "lati" y "loni" (latitud y longitud inicial) con respecto a "latf" "lonf" (latitud y longitud final), tal y como lo hacen aplicaciones para deportistas como el "Runstatic"

este es mi código de AIR para Android:

import flash.sensors.Geolocation;
import flash.events.GeolocationEvent;


if (Geolocation.isSupported){

var my_geo:Geolocation = new Geolocation();
my_geo.addEventListener(GeolocationEvent.UPDATE, onGeoUpdate);

}
function onGeoUpdate(e:GeolocationEvent):void{


var lati:Number=e.latitude;
var loni:Number=e.longitude;

var latf:Number=e.latitude;
var lonf:Number=e.longitude;

Por BrianGE

1 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 22 May 2015 12:03 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 May 2015 04:22 pm

solisarg escribió:

En el código capturas dos veces lo mismo con distinto nombre, no entiendo muy bien para que, lo que es seguro es que tienes que tener claro la matemática para calcular distancias entre dos puntos, http://www.profesorenlinea.cl/geometria/Distancia_entre_dos_puntos.html

Jorge


ok ok, aquí tengo la función para calcular distancias entre 2 puntos geográficos:

function calcula () {

var r:Number= 6378.137;

var rad = function(x){return x*Math.PI/180;}

var dLat:Number= rad(latf-lati);
var dLong:Number = rad(lonf-loni);

var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(rad(lati)) * Math.cos(rad(latf)) * Math.sin(dLong/2) * Math.sin(dLong/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = r * c;

tex1.text = d.toFixed(3);

}
calcula ();
}

este programa funciona correctamente, el detalle esta en que quiero que las variables "lati y loni" capturen las coordenadas solo una vez, para de esta manera, caminar con el celular en la mano y se calcule la distancia con relación a "latf y lonf" que son las variables que si quiero que se actualicen conforme voy caminando o en auto etc.

no se si me doy a entender correctamente... saludos

Por BrianGE

1 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 26 May 2015 11:52 am
Pues asignalo solo si no tiene valor, algo así

Código ActionScript :

var lati:Number=0;
var loni:Number=0

function onGeoUpdate(e:GeolocationEvent):void{ 
    if(lati==0) lati = e.latitude;
    if(loni==0) loni = e.longitude;

    var latf:Number=e.latitude;
    var lonf:Number=e.longitude;
     ....


Eso evita que lo vuelvas a asignar

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 May 2015 08:07 pm

solisarg escribió:

Pues asignalo solo si no tiene valor, algo así

Código ActionScript :

var lati:Number=0;
var loni:Number=0

function onGeoUpdate(e:GeolocationEvent):void{ 
    if(lati==0) lati = e.latitude;
    if(loni==0) loni = e.longitude;

    var latf:Number=e.latitude;
    var lonf:Number=e.longitude;
     ....


Eso evita que lo vuelvas a asignar

Jorge


Siii!!!! así es!!! así de simple y efectivo... si funciona!!!! Muchisimas Gracias!!!!

Por BrianGE

1 de clabLevel



 

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.