私はイベント(英国)とその郵便番号(郵便番号)のデータベースを持っています。
ユーザーは自分の郵便番号をウェブページに入力してEnterキーを押すと、すばらしいアルゴリズム/システムがユーザーの郵便番号から車でxマイル以内のイベントのリストを返します。
これはリアルタイムで可能ですか?
私が検討した解決策は次のとおりです。
郵便番号領域(そのうちの4100)間のすべての距離をキャッシュし、それを使用します。郵便番号の領域は数マイル四方であるため不完全ですが、今のところは問題ありません。最大の問題は、約8403000の移動距離が必要であり、Googleマップには使用制限があり、Map QuestのAPIは低速で、郵便番号を検索するには不完全であり、DOS攻撃を実行したくないということです。
イベントの郵便番号と私の郵便番号エリアのリストの間のすべての距離をキャッシュします。何千ものイベントがあり、イベントを追加するときに距離を調べるのに時間がかかりすぎるため、まだ不完全です。
カラスが飛ぶように、ジャーニーキャッシングの量を100マイルまたは200マイル以内の郵便番号に制限します。私はこれを調査していませんが、英国の規模を考えると、イベントごとに必要な旅の総数を1/2または2/3に減らすことができます...これはより良いですが、それでも検索に時間がかかりすぎますイベントを追加するとき。
次の郵便番号エリアまでの移動距離を含む郵便番号の場所のグラフを保存し、A*などを使用してその場で近い郵便番号を検索します。これに伴う問題は、このようなシステムを実装してホストする時間/可用性がないことです。
より良い解決策はありますか?明らかな何かを見逃したことがありますか?
編集: MapQuestは、カスタムPOIデータセットを使用した走行距離検索をサポートしているようです。
緯度/経度の近接ではなく、走行距離の近接が必要なため、近接検索の複製ではありません。