比较 Java 中的地理位置点
Posted
技术标签:
【中文标题】比较 Java 中的地理位置点【英文标题】:Comparing Geo Location points in Java 【发布时间】:2020-10-29 09:24:40 【问题描述】:假设我有一个 GeoPoint
类,我如何使用这样的地理位置实现 Comparable compareTo 方法:
public class GeoPoint implements Comparable<GeoPoint>, Serializable
private Double longitude;
private Double latitude;
public GeoPoint(Double longitude, Double latitude)
setLongitude(longitude);
setLatitude(latitude);
@Override public int compareTo(@NotNull GeoPoint geoPoint)
return 0;
【问题讨论】:
你想如何比较它们?距离基于公里还是其他? 【参考方案1】:这不是实现compareTo()
的问题,更多的是关于如何计算两点之间的距离。也就是说,compareTo()
提供自然排序,因此您应该首先考虑如何完成此操作。 AFAIK,距离始终为正,从一个点到另一个点的距离始终相等(x->y 等于 y->x)。因此,例如,您可能想根据获得的位置点了解汽车是前进还是后退。由于地球是球形的,如何比较第二点与初始点。
我认为您不能自然而然地仅使用 lat 和 long 来订购一个点。如果有帮助,请检查以下内容。https://www.movable-type.co.uk/scripts/latlong.html
【讨论】:
以上是关于比较 Java 中的地理位置点的主要内容,如果未能解决你的问题,请参考以下文章