1
私はMongoDBのコレクションに以下のようにレコードを有していが返され
/* 1 */
{
"_id" : ObjectId("58ecf141624bc0798ee5882d"),
"username" : "user.sthlm",
"location" : [
18.0686,
59.3293
]
}
/* 2 */
{
"_id" : ObjectId("58ecf141624bc0798ee5882e"),
"username" : "user.malmo",
"location" : [
13.0038,
55.605
]
}
/* 3 */
{
"_id" : ObjectId("58ecf141624bc0798ee5882f"),
"username" : "user.la",
"location" : [
-118.2437,
34.0522
]
}
「位置」が「2dsphere」タイプであり、それは順番にある[経度、緯度]
今は=所与の点
(ストックホルム座標) 経度= 18.0686 緯度との距離を取得するために、以下のように59.3293
012 pymongoクエリを使用していストックホルムとLAとの間の距離は1.393869662777678として戻されるクエリに応答して{
"distance": 0,
"username": "user.sthlm"
},
{
"distance": 0.08048218816530191,
"username": "user.malmo"
},
{
"distance": 1.393869662777678,
"username": "user.la"
}
を次のように
for doc in self.users.aggregate([{"$geoNear": {"near": [longitude, latitude],
"distanceField":"distance",
"distanceMultiplier": 1.0,
"num": int(count),
"spherical": True}}]):
結果です。
Googleマップから、座標間の距離は8,875 kmまたは5,515マイルであり、1.3938はどちらの請求書にも当てはまらない。 mongoDBのドキュメントから、結果はラジアンで返されません。だから私はクエリ応答から何を参照するのだろうかと思っています。
おかげ
これは機能します。 6371にどうやって到着したのか分かりますか? – slysid
https://www.google.com/search?q=convert+radians+to+kilometers –