2011-07-11 5 views
1

私はすべての緯度と経度の値を持つマスター郵便番号表tbl_zipcodeを持っています。また、郵便番号付きのレストランリストを備えたレストランテーブル。100マイル以内のレストランを表示

私は、ユーザーの場所、すなわちセッションユーザーから100マイル以内にレストランを見せたいと思います。 100マイル以内にすべてのレストランを返す関数を書くにはどうすればよいですか?

ご協力いただければ幸いです!
ありがとうございます。

+2

問題を解決するために何か試してみたことを示す必要があります。それ以外の場合は、あなたの問題を解決するのが面倒だと思われます。 – zerkms

+3

この質問はあまりにも終わりです。あなたはそのようなシステムを設計する方法について尋ねていますか?結果をページ付けする方法(半径100マイルには何千ものレストランがあります)?あるいはlat/lonのアルゴリズムだけが必要ですか?後者の場合は、http://stackoverflow.com/questions/2652167/how-do-i-calculate-the-distance-between-two-points-of-latitude-and-longitudeを参照してください。 –

+0

[mysqlの100マイル以内の距離を計算]の可能な複製(http://stackoverflow.com/questions/8036909/calculate-distance-within-100-miles-in-mysql) –

答えて

0

開始点から100マイル以内の郵便番号(セッションユーザーの位置に基づいて現在の郵便番号)をすべて決定し、それらの郵便番号のレストランをすべて含めます。だから、基本的にユーザーの、すべてのレストランの経度と緯度を持って

0

最初のものは、現在のユーザの郵便番号の緯度/経度の値を取得することです。

SELECT latitude,longitude FROM tbl_zipcode WHERE zipcode = <USER_ZIPCODE> 

これらの値を使用して、データベース内の各座標ペアの距離を計算することができます。これを使ってscript(PHPで書かれているので、時間を費やしてJavaの機能について考えるのは無駄です)。

しかし、各座標ペアで行うのはかなり重い操作なので、キャッシングについて考えてみたいかもしれません。たぶんそれらの値を事前に計算し、新しいレストランが来るたびにデータベースを更新することができます。

+0

ありがとう。しかし、それはレストランの距離を与えるだけで、私は100マイル以内にすべてのレストランが欲しい。 100マイル以内にすべてのレストランを返す関数を作るにはどうすればいいですか? – SandyK

+0

すぐに尋ねるのではなく、まず問題を考えてください。ほとんどの問題は脳細胞を使って解決されましたが、誰もそれを解決するのではなく、解決するのに役立ちます。可能な解決策:ユーザーの100マイル範囲内にある現在の郵便番号のセットが与えられた場合、そのセットに属する郵便番号を持つレストランをすべて選択します。 –

関連する問題