【问题标题】:Comparing Geo Location points in Java比较 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;
  }
}

【问题讨论】:

  • 你想如何比较它们?距离基于公里还是其他?

标签: java geolocation


【解决方案1】:

这不是实现compareTo() 的问题,更多的是关于如何计算两点之间的距离。也就是说,compareTo() 提供自然排序,因此您应该首先考虑如何完成此操作。 AFAIK,距离始终为正,从一个点到另一个点的距离始终相等(x->y 等于 y->x)。因此,例如,您可能想根据获得的位置点了解汽车是前进还是后退。由于地球是球形的,如何比较第二点与初始点。

我认为您不能自然而然地仅使用 lat 和 long 来订购一个点。如果有帮助,请检查以下内容。https://www.movable-type.co.uk/scripts/latlong.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多