2012-04-20 8 views
1

私はfoursquareのようなチェックインシステムを構築しています。 lat、lngのある場所のリストを持つテーブルがあります。ユーザーは、約5kmの半径で自分の位置に近い場所を見つけるリクエストを送信します。それを達成する方法?ベストプラクティスモデルはありますか?フォースクエアチェックインの仕組み

+0

そのと呼ばれる三角法:

は、より多くの情報のためのマニュアルを参照してください。実際にはもっと単純です:座標系に変換してdist = sqrt(x^2 + y^2)を使用します –

+0

したがって、テーブル内のすべての場所をフェッチして距離を確認する必要がありますか? – StoneHeart

+0

dist = sqrt((x1 - x2)^ 2 +(y1 - y2)^ 2) –

答えて

0

これは理想的には地理空間インデックスシステムを使用して行われます。

自分で簡単にするには、これらのビルトインのいずれかのデータベースを使用します。 MongoDBは一般的な例です。

これは、別のシステムでインデックス作成を行うことなく(solrやpostgisなど)、他のタイプのデータベースクエリと同様の方法でこのタイプのクエリを実行できます。

http://www.mongodb.org/display/DOCS/Geospatial+Indexing