How to get straight distance between two location in android?

后端 未结 3 1507
遇见更好的自我
遇见更好的自我 2021-01-31 12:54

First read Question carefully ...

I need straight distance, not by walking,car,or etc.

Take a look to this image which given be

相关标签:
3条回答
  • 2021-01-31 13:37

    ANDROID

    double distance
    
    Location locationA = new Location(“point A”)
    
    locationA.setLatitude(latA);
    
    locationA.setLongitude(lngA);
    
    Location locationB = new Location(“point B”);
    
    locationB.setLatitude(latB);
    
    LocationB.setLongitude(lngB);
    
    distance = locationA.distanceTo(locationB);
    

    MATHEMATICALY

    a = distance in degrees //meterConversion = 1609;
    
    b = 90 - latitude of point 1
    
    c = 90 - latitude of point 2
    
    l = longitude of point 1 - longitude of point 2
    
    Cos(a) = Cos(b)Cos(c) + Sin(b)Sin(c)Sin(l)
    
    d = circumference of Earth * a / 360 // circumference of Earth = 3958.7558657440545D km
    
    0 讨论(0)
  • 2021-01-31 13:38

    The Haversine function is used to find the distance between two points on a sphere.

    It's fairly straightforward to extend this to finding the straight line distance between two points on the Earth. The Earth is not a perfect sphere, but this is still a good approximation using a standard measurement (called WGS84) for the radius at the equator.

    As CommonsWare has said, you can do this very simply by using distanceBetween(), which uses the Haversine function and the WGS84 radius.

    For better understanding of implementation/math, take a look at this sample code in Python.

    0 讨论(0)
  • 2021-01-31 13:38

    Distance you find with following code. You just need to get two geoPoint's latitude and longitude. and use that in following calculation to get distance.

     R = 6371; // km
     d = Math.acos(Math.sin(lat1)*Math.sin(lat2) + 
                  Math.cos(lat1)*Math.cos(lat2) *
                  Math.cos(lon2-lon1)) * R;
    

    That will be return distance after all calculation.

    R is the radius of surface in KM, need to use in calculation and you try this. I hope it is useful for you.

    0 讨论(0)
提交回复
热议问题