我正在为我正在构建的应用程序编写地理编码组件,我决定使用 Yahoo Maps。我编写了地理编码 API 包装器和一些单元测试,并称之为一天。第二天回来,跑了测试,发现经纬度变了。请注意,这个变化对我来说足够小,但它足以影响我在单元测试中用于比较结果的四舍五入到小数点后四位。
我以前从未听说过改变纬度和经度。这是我应该期待/解释的事情吗?谁能解释为什么?
大陆漂移?
地理编码,尤其是从地址完成时,很少是 100% 准确的。有许多公司除了编译用于地理编码目的的街道数据之外什么都不做。
数据不准确,但经常更新以改进地址匹配。当这种情况发生时,你会得到不同的结果。我的猜测是发生了两件事之一:
1) 雅虎更新了他们的源数据。
2)您从具有不同源数据集的不同服务器获得结果。
听起来这可能是正在执行的计算的舍入误差。
现在的结果是一致的还是你仍然得到稍微不同的结果?
有趣的。
在我看来,当一个人比较“真实”数字是否相等时发生的事情非常相似。此“问题”的通常解决方案是计算 Abs[xy] < tol 其中 x, y 是您的实数(或浮点数或双精度数),而 tol 是一些小数字,代表您确定数字足够接近的标准为您的目的被视为平等。
地图不是领土
作为程序员,我们很容易忘记数据代表世界,它们不是世界的实际方面。
您还有其他答案更详细地说明了同样的事情,特别是关于地理编码,但总的来说也值得记住......