質問
作成中のアプリのジオコーディングコンポーネントを書いているので、Yahoo Mapsを使用することにしました。ジオコードAPIラッパーといくつかの単体テストを作成し、1日で呼び出しました。翌日戻ってきて、テストを実行したところ、緯度と経度が変わっていたことがわかりました。気を付けてください、変更は私には関係ないほど小さいですが、結果を比較するためにユニットテストで使用していた小数点以下4桁への丸めに影響を与えるほど重要でした。
緯度と経度の変更を聞いたことはありません。これは私が期待/説明すべきものですか?誰でもその理由を説明できますか?
解決
ジオコーディングは、特にアドレスから行われた場合、100%正確なことはめったにありません。ジオコーディングの目的で使用される道路データをコンパイルする以外何もしない多くの企業があります。
データは正確ではありませんが、アドレスの一致を改善するために頻繁に更新されます。これが発生すると、異なる結果が得られます。私の推測では、次の2つのうちの1つが発生したと考えられます。
1)Yahooはソースデータを更新しました。
2)異なるソースデータのセットを持つ異なるサーバーから結果を得ました。
他のヒント
大陸ドリフト?
ジオコーディングで使用されるアルゴリズムは、必ずしも不正確です。彼らは特定の推測を行います。上記の情報に加えて、このホワイトペーパーをご覧ください:
http://www.urisa.org/files/goldberg.pdf
これらのアルゴリズムについて説明します。
実行中の計算の丸め誤差である可能性があります。
結果に一貫性はありますか、それとも若干異なる結果が得られますか?
興味深い。
「本当の」数を平等と比較したときに起こることと非常に似ています。この「問題」の通常の解決策は、Abs [x-y] <!> lt;を計算することです。 tolここで、x、yは実数(または浮動小数点数、倍精度数)であり、tolは、数値が目的に応じて等しいと見なされるほど近いことを判断するための基準を表すいくつかの小さな数値です。
地図は領土ではありません
プログラマーが私たちにとって本当に簡単に見落とすことができるのは、データが世界を表すということであり、それらは世界の実際の側面ではないということです
同じことをより詳細に、特にジオコーディングについて述べている他の回答がありますが、一般的に覚えておく価値があります。...