使用一组请求的点进行距离计算
Posted
技术标签:
【中文标题】使用一组请求的点进行距离计算【英文标题】:Distance Calculation with a requested set of points 【发布时间】:2017-05-01 14:18:55 【问题描述】:我需要确定提交集合中每个点(纬度/经度)到其他每个点的距离。可能是 2 到 200 分。像 Haversine 这样的公式是必需的。例如 A,B,C 将返回 A-B - x.x 米,A-C - x.x 米,B-C = x.x 米。
我正在考虑使用 Java 中的自定义解决方案之类的选项,或者可能利用 Hadoop / Apache Spark 之类的分布式计算或地理处理工具 (ESRI/ARCGIS) 之类的工具。
以前有人解决过这个要求吗?
有什么经验教训吗?
【问题讨论】:
您需要在这里提出具体问题 200个点需要199个阶乘距离计算,不管怎么计算都需要很长时间。 【参考方案1】:对于具有 (lon,lat) 坐标 [注意 X,Y 顺序] 与 Esri Spatial Framework for Hadoop 的点之间的距离(以米为单位),请使用 ST_GeodesicLengthWGS84。
More samples of ST_GeodesicLengthWGS84 can be found in this test script.
GIS-SE 相关问答:https://gis.stackexchange.com/questions/170479/join-on-range-query-using-esris-gis-tools-for-hadoop/#185660
[披露:合作者。]
更新:Java API - GeometryEngine.html#geodesicDistanceOnWGS84
【讨论】:
以上是关于使用一组请求的点进行距离计算的主要内容,如果未能解决你的问题,请参考以下文章