java - 按距当前 GPS 位置的距离对 GPS 位置集合进行排序

标签 java arraylist collections gps

给定具有经度和纬度的位置对象集合,如何根据每个位置到当前位置对象的距离对该列表进行排序?

我有一个方法可以计算两个 Location 对象之间的距离(以米为单位)。

Collections.Sort() 在这里合适吗?

最佳答案

这是对 Benjy 答案的更新,除了使用 Location 类的内置函数。它被隔离以将源作为构造函数的一部分包含在内。

public class LocationComparator implements Comparator<Location>
{
    Location origin;
    LocationComparator(Location origin){
        this.origin= origin;
    }
    public int compare(Location left, Location right) {
        return Float.compare(origin.distanceTo(left), origin.distanceTo(right));
    }
}

使用方法如下

Collections.sort(latLonCollection, new LocationComparator(originLocation));

关于java - 按距当前 GPS 位置的距离对 GPS 位置集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30156572/

相关文章:

java - INSERT OR IGNORE 插入重复语句

java - 在 Java 中从 ArrayList 中删除对象

java - 在 Java 中返回排序列表

.net - HashSet.Intersect() 的顺序对性能有影响吗?

java - Android 中对 Hashmap<String, ArrayList> 进行排序

java - ArrayList.remove 在称为 Collection.remove 时会给出不同的结果

Java - 尝试在此 forLoop 的每次迭代上绘制图像

java - 存储在数组中的复合类在 selenium java 中无法访问

java - 向 ArrayList 添加元素时出现 NullPointerException

java - 按内部 ArrayList 中的索引对 ArrayList 的 ArrayList 进行排序