math - 如何计算两个坐标之间的距离(没有 float )?

标签 math language-agnostic gps geospatial

我需要在没有浮点类型的嵌入式系统上计算两个坐标(lon,lat)之间的距离(只有整数可用,所以没有三角函数,也没有像 sqrt 这样的浮点运算)。

这些点彼此非常接近,因此准确性不是问题。

所以我不能使用 Haversine formula .我也不能使用这个基于毕达哥拉斯定理和 equirectangular projection 的简单算法:

x = Δlon * cos(lat)
y = Δlat
d = R * √(x² + y²)

因为我没有 cos 和 sqrt 函数。也许我可以以某种方式实现它们,但是这个算法必须很快(嵌入式系统)。

我最好的选择是毕达哥拉斯定理,但如何在没有三角函数(和没有 sqrt)的情况下从度数到米数?

最佳答案

传统上,航海者会使用遍历表进行此类计算——参见 American Practical Navigator 的第 24 章。 .这表明如果 trigsqrt超出了您可能实现查找表的等式 - 交易空间的复杂性。根据您的具体需求,您可能只需要针对您感兴趣的纬度的部分导线表。

关于math - 如何计算两个坐标之间的距离(没有 float )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620262/

相关文章:

Java,在多线程环境下通过散列统一划分传入的工作

css - 将 div 匹配到背景图像中特定 "3D"位置的公式

android - Geocoder 在 Android 模拟器上工作是否需要 map api key

javascript - 从支持 gps 的设备获取当前纬度和经度

Javascript:将 Math.sqrt 转换为 int?

class - 类名中的 "Helper"这个词是代码异味吗?

language-agnostic - 使用大量参数的缺点

ajax - 优雅降级 - 何时考虑

ios - 如何从另一个类调用变量

algorithm - 当 d 是 k 位指数时,使用平方乘算法计算 m^d mod n 所需的最大乘法次数是多少?