我正在为我正在构建的应用编写一个地理编码组件,我决定使用Yahoo Maps。我编写了地理编码API包装器和一些单元测试,并称它为一天。第二天回来,跑了测试,发现经纬度发生了变化。请注意,这个变化很小,对我来说不重要,但它足以影响我在单元测试中使用的4位小数舍入来比较结果。

我以前从未听说过改变纬度和经度。这是我应该期待/占的吗?任何人都可以解释原因吗?

有帮助吗?

解决方案

地理编码,尤其是从地址完成时,很少100%准确。有许多公司除了编制用于地理编码目的的街道数据外什么都不做。

数据不准确,但经常更新以改善地址匹配。发生这种情况时,您会得到不同的结果。我的猜测是发生了两件事之一:

1)雅虎更新了他们的源数据。

2)您从具有不同源数据集的其他服务器获得结果。

其他提示

大陆漂移?

地理编码使用的算法必然是不精确的。他们做了一些猜测。除上述信息外,请查看本白皮书:

http://www.urisa.org/files/goldberg.pdf

讨论这些算法。

听起来它可能是正在执行的计算的舍入错误。

现在结果是否一致,或者结果是否仍然略有不同?

有趣。

在我看来,非常喜欢在比较“真实”数字以求平等时发生的事情。对这个“问题”的通常解决方案是计算Abs [x-y] <!> lt;其中x,y是你的实数(或浮点数,或双数),而tol是一个小数字,代表你判断这些数字足够接近你的目的所等的标准。

地图不是领土

对于我们来说,作为程序员,我们很容易忘记的是数据代表世界,它们不是世界的实际方面。

你有其他答案更详细地说同样的事情,特别是地理编码,但总的来说也值得记住....

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top