我在各种编程语言中看到了许多使用 Douglas-Peucker 折线简化算法来生成 GPolyline 以在 Google 地图上使用的示例。该算法在表示为平面上的折线时,涉及计算点和线之间的距离(通过另外两个点)。
现在,到目前为止,我看到的所有示例都以非常幼稚的方式应用该算法,只需将 x 和 y 替换为纬度和经度。这可能会产生可接受的结果,只要折线非常局部化,不太靠近极点,并且不穿过 180° 子午线,但我想实现更通用的算法版本。
所以,如果我没记错的话,我需要计算球体表面上最短弧的长度,从一个点到穿过球体表面另外两个点的圆,其中心与球心(地球)。
有谁知道计算这个长度的公式?
提前致谢