モデルユーザーとMongo DBを使用して緯度と経度のデータを格納しています。モンゴイド、レール、グーグルマップを使用して「近くのユーザー」を検索する方法
Googleマップjavascript api v3を使用してこのデータを取得しています。
"近くのユーザー"を表示するにはどうすればよいですか?
モデルユーザーとMongo DBを使用して緯度と経度のデータを格納しています。モンゴイド、レール、グーグルマップを使用して「近くのユーザー」を検索する方法
Googleマップjavascript api v3を使用してこのデータを取得しています。
"近くのユーザー"を表示するにはどうすればよいですか?
もののDhruvPathakの答えはここに、正しい地理を行うための同等のmongoid Rubyコードが
User.where(:loc => {'$near' => [50,50]})
User.where(:loc => {'$near' => [50,50],'$maxDistance' => 5})
地理空間索引付けができるようにデータを格納します。 MongoDbには、このための組み込みサポートがあります。次に、距離/近接度 の埋め込みクエリーを簡単に使用できます。
http://www.mongodb.org/display/DOCS/Geospatial+Indexing
*Querying
The index can be used for exact matches:
db.places.find({ loc : [50,50] })
Of course, that is not very interesting. More important is a query to find points near another point, but not necessarily matching exactly:
db.places.find({ loc : { $near : [50,50] } })
The above query finds the closest points to (50,50) and returns them sorted by distance (there is no need for an additional sort parameter). Use limit() to specify a maximum number of points to return (a default limit of 100 applies if unspecified):
db.places.find({ loc : { $near : [50,50] } }).limit(20)
You can also use $near with a maximum distance
db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 } }).limit(20)*
ワオ、モンゴイド岩。 – kinet
@kinet訂正.... MONGODB rocks! :) – DhruvPathak
申し訳照会しているが、この:
はを見てください「過度に広範」であると同時に、「ローカライズすぎる」。私たちはあなたを助けようとしているのではありません。あなたがこれを持っている特定の問題を示すか、孤立した部分が何を問題にしているか教えてください。 – coreyward申し訳ありませんが、これは違った言い方をするべきです:/私は明らかにさまざまな解決策を考えることができますが、mongoがgeospacial indexingを持っているかどうかはわかりませんでした。 DhruvPathakの答えは完璧でした。 – kinet