我正在开发一个 Android 应用程序。
我正在从服务器获取纬度和经度列表。
我必须根据我的位置安排这些值。我的意思是首先是最近的纬度/经度,然后是下一个等等。
我有我的经纬度和经纬度列表。我怎样才能找到最近的?
我正在开发一个 Android 应用程序。
我正在从服务器获取纬度和经度列表。
我必须根据我的位置安排这些值。我的意思是首先是最近的纬度/经度,然后是下一个等等。
我有我的经纬度和经纬度列表。我怎样才能找到最近的?
伪代码:
location.distanceTo(locFromServer); 和排序 Colection.sort(listOfLocations;new Comparator(){ 相比于(){ // location.distanceTo(locFromServer) } }
您可以简单地计算用户位置到下载位置的距离,并选择最小的一个。
看看这里:更快的方法来计算两点之间的地理距离。
这可能不是最好的方法,但它有效:)
public static final double PI = 3.14159265;
public static final double deg2radians = PI/180.0;
public static final double miles = 0.000621371192;
public static final double kms = 0.001;
public static double getDistance(double latitude1, double longitude1, double latitude2,double longitude2) {
double distance;
Location locationA = new Location("point A");
locationA.setLatitude(latitude1);
locationA.setLongitude(longitude1);
Location locationB = new Location("point B");
locationB.setLatitude(latitude2);
locationB.setLongitude(longitude2);
distance = locationA.distanceTo(locationB);
double radd = distance * kms;
return radd;
}