algorithm - 如何确定地球上的点和线之间的最短路径?

标签 algorithm geospatial

我想计算一个点和代表地球上纬度和经度区域的边界框之间的最小距离。如果该点落在最小长度和最大长度之间,那么我可以计算纬度距离,这很容易,因为它是一个常数值。否则,我需要使用半正弦公式计算从我的点到纵向线上最接近我的点的点的距离。我看到很多关于计算两点之间的距离的信息,但没有太多关于点和线之间的距离,或者关于查找线上到点的最近点的信息。

最佳答案

您知道如何找到两点之间的距离。现在您只需要知道如何找到从一点到大圆的距离。诀窍是找到与整个大圆等距的点(就像北极与整个赤道等距一样),找到从您的点到那个的距离,然后从 90 度中减去(用a +/-,取决于您的点是否与您选择的极点位于圆的同一侧)。

一旦掌握了这个技巧,请注意,您正在尝试找到从一个点到一条恒定经度的曲线的距离,该曲线是一个大圆,其“极点”是赤道上与经度相差 90 度的点从曲线上看。

(您可能需要画几张图,但这确实并不难。)

关于algorithm - 如何确定地球上的点和线之间的最短路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5476263/

相关文章:

database - Postgis ST_DIstance 查询返回不准确的结果

r - R中的二元空间相关图(二元LISA)

c++ - 如何更快地生成自恋数字?

algorithm - 计算圆周围的点

python - 正则表达式排除表达式中的字符串和属性

ios - 获取某个位置的最新消息

r - R中的相交多边形,导入多边形以在Spatstat中进行空间聚类分析

java - 将两个链表表示的数相加,进位值不传递给下一次计算

algorithm - 什么排序算法适合这个 'stream-like' 条件?

c# - 系统.DllNotFoundException : Unable to load DLL 'SqlServerSpatial110.dll' : The specified module could not be found