2009-06-17 10 views
1

ビルドしているアプリのジオコーディングコンポーネントを作成していて、Yahoo Mapsを使用することにしました。私は、ジオコードAPIラッパーといくつかの単体テストを書いて、それを1日と呼びました。翌日に戻り、テストを行い、緯度と経度が変わったことがわかりました。あなたが気にしていたのは、変更は私にとって重要ではないほど小さかったですが、結果を比較するために私の単体テストで使用していた小数点以下4桁までの丸めに影響を与えるのに十分な大きさでした。緯度と経度が変化しますか?

以前は緯度と経度の変更について聞いたことがありません。これは私が期待するべきものなのでしょうか?なぜ誰かが説明できますか?

+0

あなたのユニットテストが何をしているかを明確にしてください。 – rein

答えて

4

ジオコーディングは、特にアドレスから行われた場合、100%の精度はほとんどありません。ジオコーディング目的で使用される道路データをコンパイルするだけで何もしない多くの企業があります。

データは正確ではありませんが、アドレスマッチングを改善するために頻繁に更新されます。これが起こると、別の結果が得られます。私の推測では、2つのうちの1つが起こったということです:

1)Yahooはソースデータを更新しました。

2)別のサーバーから結果が得られ、ソースデータが異なります。

+0

私は#1の可能性について考えましたが、それは奇妙な偶然のことでしょう。#2のほうが実際に聞こえる可能性は高いですが、昨日はテストが一日中うまくいっていて、比較する値を修正したのでうまくいきます。私はYahooの側の計算が何らかの形で日付の影響を受けていると考え始めている。 – Chris

+0

私の推測では、Webサービスである彼らは、マシンのファーム全体でこれを実行していると思います。マシンのソフトウェアバージョンやデータバージョンが若干異なる場合は、結果が微妙に異なる場合があります。これは、商業ジオコーディングの大きな利点の1つです。更新がいつ発生するかを制御し、一致が「良い」(つまり、ZIP、センサスの区域、国勢調査のブロック、通り、正確なものなど)を教えます。 –

5

コンチネンタルドリフト?

+3

+1 - LOL - それはとても面白いです。 –

+0

地球温暖化の可能性があります。 – rein

+0

奇妙なことに、私の最初の考えはまさにそのことでした。それから、私は自分自身を叩き、「自己、いい方法はない」と言った。 :D – Chris

1

ジオコーディングが使用するアルゴリズムは、必然的に不正確です。彼らは特定の推測を行います。

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

これらのアルゴリズムを語る:上記の情報に加えて、このホワイトペーパーをチェックアウト。

+0

不正確な計算不正確であっても矛盾を意味するものではありません。私は、同じ不正確さがある日から次の日まで続くと期待していますね。 – Chris

0

実行されている計算に丸め誤差があるようです。

結果が一貫しているか、まだ若干異なる結果になっていますか?

+0

一貫しています。私はYahoo!側は日付の影響を受けます。私は明日もう一度試して、テストが失敗するかどうかを見ます。 – Chris

+0

データが今から一貫していれば、私はYahooのエンドでデータベースを更新するつもりです。 – ChrisF

-1

マップは、彼らは世界の実際の側面がされていないのトラックを失うことを、プログラマとして、私たちのために本当に簡単です

何かデータが世界を表すということである領土ではありません。

+0

原因のないDownvote?あなたの意見ではこれは間違っていますか?私はReed Copsey&Christopherと同じことをいくつか言いたいと思って始めましたが、私が書いている間に彼らの答えが入ってきました。原則はそのまま適用されます - 緯度/経度は変更されません。データについては*ありません。 – RolandTumble

+0

ダウンワードは必ずしも質問者からのものではありません。私はあなたの答えに触れなかった。 – Chris

+0

私はそれを知っています - 申し訳ありませんが、私は自分の質問がダウンボターにあったとはっきりしていませんでした。 – RolandTumble

0

興味深い....あなたは、具体的ジオコーディングについて、より詳細に同じことを言って他の答えを、持っているが、それは同様に、一般的に覚えておく価値があります。

「真の」数字が等しいかどうかを比較すると、私には非常に似ています。この問題に対する通常の解決策は、Abs [xy] < tolを計算することです。ここで、x、yは実数(または浮動小数点数または複素数)で、tolは数字が十分に近いと判断するための基準を表しますあなたの目的のために等しいとみなされます。