Android Distance Calculate distance(double lat1, double lon1, double lat2, double lon2, char unit)

Here you can find the source of distance(double lat1, double lon1, double lat2, double lon2, char unit)

Description

Calculates the distance between two geo-coordinates

License

Open Source License

Parameter

Parameter Description
lat1 a parameter
lon1 a parameter
lat2 a parameter
lon2 a parameter
unit a parameter

Return

distance between two geo coordinates

Declaration

public static double distance(double lat1, double lon1, double lat2,
        double lon2, char unit) 

Method Source Code

//package com.java2s;
//License from project: Open Source License 

public class Main {
    /**/*from  w  w  w .  jav  a2 s  . com*/
     * Calculates the distance between two geo-coordinates
     * 
     * @param lat1
     * @param lon1
     * @param lat2
     * @param lon2
     * @param unit
     * @return distance between two geo coordinates
     */
    public static double distance(double lat1, double lon1, double lat2,
            double lon2, char unit) {
        double theta = lon1 - lon2;
        double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2))
                + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2))
                * Math.cos(deg2rad(theta));
        dist = Math.acos(dist);
        dist = rad2deg(dist);
        dist = dist * 60 * 1.1515;
        if (unit == 'K') {
            dist = dist * 1.609344;
        } else if (unit == 'N') {
            dist = dist * 0.8684;
        }
        return (dist);
    }

    /**
     * Converts degree to radian
     * 
     * @param deg
     * @return radian
     */
    private static double deg2rad(double deg) {
        return (deg * Math.PI / 180.0);
    }

    /**
     * Converts radian to degree
     * 
     * @param rad
     * @return degree
     */
    private static double rad2deg(double rad) {
        return (rad * 180 / Math.PI);
    }
}

Related

  1. getTempsTrajetPied(int distance)
  2. hammingDistance(String sourceHashCode, String hashCode)
  3. getMessageForDistance(long distance)
  4. calculateEte(boolean useBearing, double distance, double speed, double bearing, double heading)
  5. fetchRawEte(boolean useBearing, double distance, double speed, double bearing, double heading)
  6. computeSpeed(int distance, long duration)
  7. getClosestStore(ArrayList storeIds, SparseArray distanceMap)
  8. toDistanceSearchUri(Uri contentUri, Location location, double distance)
  9. getDisplay(Activity activity)