我需要确定提交的集合中每个点(纬度/经度)到每个其他点的距离。可能是2到200点。像Haversine这样的公式是必需的。例如,A,B,C将返回A-B-x.x米,A-C-x.x米,B-C = x.x米。

我正在考虑使用Java中的自定义解决方案之类的选项,或者可能利用诸如Hadoop / Apache Spark之类的分布式计算,或者利用诸如GeoProcessing工具(ESRI / ARCGIS)之类的工具。

有人解决过这个要求吗?

任何经验教训?

最佳答案

对于Hadoop的Esri Spatial Framework,对于具有(lon,lat)坐标[注X,Y顺序]的点之间的距离,以米为单位,请使用ST_GeodesicLengthWGS84

More samples of ST_GeodesicLengthWGS84 can be found in this test script

GIS-SE相关的Q / A:https://gis.stackexchange.com/questions/170479/join-on-range-query-using-esris-gis-tools-for-hadoop/#185660

[披露:合作者。]

更新:Java API-GeometryEngine.html#geodesicDistanceOnWGS84

10-05 21:24