2012-03-29 221 views

回答

1

您可以使用以下方法计算两个经纬度点之间的距离。

public static float distFrom (float lat1, float lng1, float lat2, float lng2) 
{ 
    double earthRadius = 3958.75; 
    double dLat = Math.toRadians(lat2-lat1); 
    double dLng = Math.toRadians(lng2-lng1); 
    double a = Math.sin(dLat/2) * Math.sin(dLat/2) + 
    Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * 
    Math.sin(dLng/2) * Math.sin(dLng/2); 
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    double dist = earthRadius * c; 

    int meterConversion = 1609; 

    return new Float(dist * meterConversion).floatValue(); 
} 
2

只要使用Android的内置Location类,用于获取两个位置之间的距离。

你也可以试试这个,

Location locationA = new Location("location A"); 

locationA.setLatitude(locationA.getLatitudeE6()/1E6); 
locationA.setLongitude(locationA.getLongitudeE6()/1E6); 

Location locationB = new Location("location B"); 

locationB.setLatitude(locationB.getLatitudeE6()/1E6); 
locationB.setLongitude(locationB.getLongitudeE6()/1E6); 

double distance = locationA.distanceTo(locationB); 
相关问题