Hola necesito cal un evento en onchangelocation(), mediante la comparación de la latitud y longitud, con algunos guardan la latitud y la longitud, pero me estoy poniendo un error. eclipse es no reconocer la palabra clave a distancia, y para la corrección de error es dar pista para el cajón método de la «distancia» con 4 parámetro … ¿cómo solucionarlo??? o alguna otra manera de hacer el mismo trabajo???

gracias y saludos. el código se adjunta a continuación

@Override
public void onLocationChanged(Location location) {
 double currentLat=location.getLatitude();
 double currentLon=location.getLongitude();

    if (distance(lat,lon,currentLat,currentLon)<2.0){
 //do what you want to do...
  }
}
Usted necesita para escribir una función de la distancia, no existen en Android. También puede ser que desee comprobar esto: developer.android.com/training/location/geofencing.html
sir simplemente quiero comparar dos latitudes y una longitud de valores. si corresponde, a continuación, desea llamar a uno de los eventos más otro evento. ¿hay alguna manera sencilla de hacerlo… el es mi código completo stackoverflow.com/questions/18150929/…
por lo que el problema de la distancia método. publicar la firma de distancia método.
El problema es que él no tiene el método a distancia.

OriginalEl autor user2590541 | 2013-08-11

3 Comentarios

  1. 29

    Usted realmente necesita para implementar una función llamada distancia que se calcula la distancia entre dos ubicaciones. Calcular la distancia entre dos puntos es una manera posible de comparar los valores de longitud y latitud.

    Un ejemplo de la comparación entre ellos:

    @Override
    public void onLocationChanged(Location location) {
    
     double lat2 = location.getLatitude();
     double lng2 = location.getLongitude();
    
        //lat1 and lng1 are the values of a previously stored location
        if (distance(lat1, lng1, lat2, lng2) < 0.1) { //if distance < 0.1 miles we take locations as equal
           //do what you want to do...
        }
    }
    
    /** calculates the distance between two locations in MILES */
    private double distance(double lat1, double lng1, double lat2, double lng2) {
    
        double earthRadius = 3958.75; //in miles, change to 6371 for kilometer output
    
        double dLat = Math.toRadians(lat2-lat1);
        double dLng = Math.toRadians(lng2-lng1);
    
        double sindLat = Math.sin(dLat / 2);
        double sindLng = Math.sin(dLng / 2);
    
        double a = Math.pow(sindLat, 2) + Math.pow(sindLng, 2)
            * Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2));
    
        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    
        double dist = earthRadius * c;
    
        return dist; //output distance, in MILES
    }
    sir simplemente quiero comparar dos latitudes y una longitud de valores. si corresponde, a continuación, desea llamar a uno de los eventos más otro evento. ¿hay alguna manera sencilla de hacerlo… este es mi código completo stackoverflow.com/questions/18150929/…
    A continuación, usted debe expresarse de esa manera y no utilizar una función llamada distancia que no existe.
    la he probado pero tengo errores… u plz hacer un ejemplo de codificación para este propósito
    Tienes el ejemplo completo en mi código. Este método calcula la distancia entre dos lugares, y por supuesto, también puede ser utilizado para la comparación. Por ejemplo, si la distancia entre 2 lugares por debajo de 0,01 millas que usted podría tomar como igual.
    yo lo intenté pero no dando el deseo salidas, la amabilidad de comprobar lo equivocado que estoy haciendo…

    OriginalEl autor Philipp Jahoda

  2. 10

    Puede utilizar el Location de la clase estática distanceBetween() método así:

        float[] distance = new float[1];
        Location.distanceBetween(lat, lon, currentLat, currentLon, distance);
        //distance[0] is now the distance between these lat/lons in meters
        if (distance[0] < 2.0) {
            //your code...
        }

    Si usted tiene dos Location objetos, otra opción es distanceTo()

    OriginalEl autor yuval

  3. 0

    Todos los 4 parámetros de entrada están en el flotador.
    La distancia es relativa no real de la distancia. Usted necesita para convertir esta distancia a una distancia real por la búsqueda de algunos de fórmula en línea 🙁 he utilizado este en mi app para obtener más cercano de la estación de metro de mi ubicación actual. Esperamos que este fragmento de ayuda a alguien 🙂

    float distance(float lat,float lon,float clat,float clon)
    {
        float distance;
        float temp1;
        float temp2;
        temp1=(float)((lat-clat)*(lat-clat));
        temp2=(float)((lon-clon)*(lon-clon));
        distance=temp1+temp2;
        return distance;
    }

    OriginalEl autor Venkatesh Suvarna

Dejar respuesta

Please enter your comment!
Please enter your name here