2016-03-28 18 views
1

ジオロケーションとGPS座標を使用して、1人のユーザーに近いユーザーを特定して計算する最良の方法はなんですか?ジオロケーションを使用して1人のユーザーに近いユーザーを特定します。

主なユーザーのGPS座標を考えると、私は自分の位置を中心に「境界ボックス」を計算する方法を知っています。私は、各ユーザープロファイルのバウンディングボックスの座標をデータベースに保存することができます。しかし、どのユーザーが要求を送信したユーザーに近いかをどのように判断できますか?

距離が与えられたGPS位置の周りの「ボックス」を計算することができる数式はありますか?そのため、その数式を適用すると、同じボックスがレンダリングされます。

これを実行すると、どのボックスのユーザーがこのボックスに入れているかをデータベースに問い合わせることができます。

+0

どのデータベースを使用していますか? –

+0

私はMongoDBデータベースを使用しています:) – FrenchFalcon

+0

[geoNear-MongoDBでサブ文書を取得する]の可能な複製(http://stackoverflow.com/questions/29091420/gets-sub-documents-by-geonear-mongodb) –

答えて

0

最後に、MongoDBが提供する$geoNearアグレゲーションを使用することに決めました。 これは、最小距離と最大距離を設定できるので、完全に機能します。

Node.jsにMongooseを使用すると、この機能は Schema.geoNear(...)で利用できることに注意してください。

1

Geospatial Indexes and Queriesの助けを借りて、地理空間情報を扱うことができます。私があなたを正しく理解したら、$geoWithin がお手伝いします。この演算子は、指定された図形内に完全に存在する地理空間データを持つ文書を選択します。その場合は、ユーザーの位置を囲む境界ボックスになります。

関連する問題