4

ユーザーの緯度と経度があり、近くにあるレストランを検索したい場合、リレーショナル DB にどのようにクエリを実行しますか? 「半径 25 マイル以内のレストラン」などの場合は?

経度と経度がユーザーの場所 +/- 25 マイル (私が推測する度数に変換) よりも大きい/小さい正方形のレストランをクエリし、使用している言語で「コーナー」を除外しますか? または、SQLで直接行うことができますか?

4

5 に答える 5

4

たとえば、オラクルで利用可能な空間機能を見てみましょう。ウィキペディアのエントリhttp://en.wikipedia.org/wiki/Spatial_queryと、noaa https://www.ngdc.noaa.govの例を含むリンクがあります。 /wiki/index.php?title=Sample_Oracle_Spatial_Queries

于 2010-06-23T01:49:15.550 に答える
3

ここで本当に良いガイドを見つけました: http://code.google.com/apis/maps/articles/phpsqlsearch.html

他の多くの説明よりもはるかに簡単です...

于 2010-06-24T19:52:13.477 に答える
2

緯度/経度を赤道からかなり離れた直線グリッドとして扱っている場合(たとえば、ニューヨーク、ロンドン、モスクワなど)、「円」はすでにかなり変形しています。「正方形」から角をトリミングしても、それほど改善されません。

于 2010-06-23T01:56:51.693 に答える
2

Haversine 式の SQL 実装を使用する

于 2010-06-23T01:50:49.180 に答える
1

リレーショナルデータベースについて具体的に言及されていることは知っていますが、少なくとも空間クエリがネイティブに実装されているシステムを調べてみることをお勧めします。

個人的には、MongoDBは非常にエレガントであることがわかりました:http ://www.mongodb.org/display/DOCS/Geospatial+Indexing

于 2010-06-23T02:02:01.463 に答える