はい、常に座標の変動を予測します。
建物は地表で移動する可能性は低いですが、アドレスの識別子/キーとして座標を使用することは悪い考えです。データセットが下から移動するためです。
精度は定義の問題です。住所は、メールボックス、最大の構造物、または正面玄関で最も正確に固定されていますか?どの玄関ですか?たぶん私道?
小数点精度も問題です。と33.754208
同じ33.754209
ですか?これは丸めによって修正できますが、精度が失われます。小数精度を追加することは、あなたにはない贅沢です。10進数がどの程度正確であっても、たとえ「同じ」であっても、特にコンピューターが浮動小数点型を比較する方法を考えると、それらは異なる可能性があります。この時点では、低レベルの実装の詳細に完全に依存しています。
データセットを制御せず、物理属性を使用して何かをキーイングしている場合、キーが変更されないことは保証できません。ただし、データベースは識別子が一意で一定であると想定しているため、これは問題です。更新しても、他のデータポイントとの衝突はどうですか?
データセットを所有している場合でも、最初の2つの問題の影響を受けます。定義と実装が変更されました。「正確さ」を向上させるために座標データを更新することはできませんが、アドレスはそれが好きかどうかにかかわらず変更され、キャッシュが無効になります。
しかし、あなたができることは、自分の鍵です。識別子として座標を使用しないでください。むしろ、アプリケーション(または場合によっては世界中)全体で一意であることが保証されているキーを割り当て、変更しないようにします。
SmartyStreetsでは、住所のジオコーディングを担当しています。たとえば、その住所は建物のデフォルトです。セカンダリ(アパートメント/スイート)番号がありません。データはブロックレベル(屋上付近)ですが、できるだけ正確に取得できるとしたら、その座標はどうなるでしょうか。現時点では33.75425, -84.38721
、Googleマップが配置する場所から数フィート離れた場所に割り当てています。それがロビーとその建物のユニットである場合、それは異なる座標である必要がありますか?その質問への答えは変わる可能性があり、したがって、基礎となるデータセットを変更します。そして、お互いの真上にあるユニットについてはどうですか(建物のポイントをピン留めすることはできますが、どの階を意味しましたか)。グーグルは明らかに全く同じ質問を通過します、そして答えが変わったなら、座標もそうします。
そのため、アドレスを一意に識別するために制御するキーを人々に与え、決して変更しないことを常にお勧めします。
どうして?
アドレスはめちゃくちゃです。特に、「住所は実際には何を意味するのか?それは建物または居住者を表すのか?または郵便受けを表すのか?」について哲学的な質問をし始めると、それらも変わる可能性があります。そして、アドレスが一時的である、つまり時間とともに変化することを考え始めると、さらに醜くなります。
また、アドレスをハッシュ化したり、配信ポイントのバーコードを識別子として使用したりする人もいます。標準化された形式であっても、アドレスは変更されても「同じ」アドレスのままになる可能性があるため、これを行わないでください。また、誤って住所に対して一意であると見なされた配信ポイントバーコードは、二重に有罪です。変更され、必ずしも一意であるとは限りません。かっこいい?
tl; drデータベースの実際の住所と座標への依存度を最小限に抑えます。