特定のアドレスの近接度でソートされた、保存されているアドレスのリストを表示する方法を実装したいと思います。
リスト内のアドレスはデータベーステーブルに保存されます。別々の部分には別々のフィールドがあるので(郵便番号、都市名などのフィールドがあります)、それは単なる巨大なものではありませんvarchar
。これらはユーザーが入力したものであり、システムの性質上、必ずしも完全ではない場合があります(郵便番号が欠落しているものもあれば、市や州にすぎないものもあります)。
これはイントラネットアプリケーション用ですが、インターネットWebサービスへのアクセスなどの外部リソースの使用に問題はありません。自分でやるのが簡単でない限り、私は実際に自分自身を転がすよりもそれを好むでしょう。GoogleまたはYahoo!の場合 すでに無料のサービスを提供しているので、ぜひチェックしてみてください。キーワードは、この機能のためにこのプロジェクトに追加のコストを導入する自由がないので、無料でなければならないということです。これは、いわばボーナスの「特典」です。
多くの実店舗が「場所を探す」機能を実行しているように、私はこれを考えています。適切にソートされた単純なテーブルに表示し、距離(たとえば、マイル)を表示するのは素晴らしいことです。地図のマッシュアップを表示するのはさらにクールですが、距離を取り戻して、その後の表示と並べ替えをすべて処理するだけで、間違いなく生きることができます。
単純な距離アルゴリズムの問題は、データの性質です。アドレスの全部または一部が未定義である可能性があるため、緯度/経度座標のような便利なものはありません。また、私が郵便番号を要求したとしても、住所の90%はおそらく同じ5つの郵便番号を持っているでしょう。
驚くほど高速である必要はありませんが、待ち時間が原因でページに表示されるまでに7秒以上かかるものは、私たちが知っているように、平均的なユーザーが待つには長すぎる可能性があります。そのような架空のサービスが、一度に1つずつクエリを実行するのではなく、一度にアドレスのバッチを送信することをサポートしている場合、それは素晴らしいことです。それでも、アドレスのリストが合計で50を超えるとは思わないでください。