現在の緯度/経度座標から10キロメートルと言えば、私はMongooseで文書を読み込もうとしています。Mongooseは緯度経度座標から一定距離の文書を取得します
それでは、私は、このオブジェクトを持っているとしましょう:
{
lat: -33.9493992,
lon: 151.1114885
}
そして、私のマングースデータベースに私がコレクションを持っているし、このコレクション内のすべての文書はまた、保存LAT-LONキーを持っています。与えられた座標から特定の距離だけのエントリを取得するにはどうすればよいですか?
たとえば、上記の座標から最大10キロ離れたドキュメントだけを取得したいとします。
私は助けていただきありがとうございます。
EDIT: 私のコード:
var schema = new mongoose.Schema({
title: String,
title: String,
coordinates: {
type: [ Number ],
default: [0, 0],
index: '2dsphere'
}
});
global.models.Point = mongoose.model('Point', schema);
し、モデル内で検索しようとしているコード: router.route( '/ポイント/:モデルを初期化
緯度/: LON ') に.get(関数(REQ、RES){ はconsole.log(' LAT: '+ req.params.lat +' LON:」+ req.params.lon);
global.models.Point.find({
coordinates: {
$near: {
$maxDistance: 100/111.12,
$geometry: {
type: 'Point',
coordinates: [req.params.lon, req.params.lat]
}
}
}
}, function (err, res) {
if (err) {
return console.log(err);
}
console.log(res);
});
});
それはデータベースコレクションに保存されているよう
オブジェクト:
次のように定義されたフィールドを持っている必要があり、あなたのスキーマで{
"_id" : ObjectId("56ea103eefedec96b6d4b203"),
"title" : "Some title",
"coordinates" : [
5.2260167,
52.3500607
]
}
ドキュメントをお読みください。 ['$ nearSphere'](https://docs.mongodb.org/manual/reference/operator/query/nearSphere/)。あなたは別個の特性を望まない。ドキュメンテーションは、あなたのドキュメントがどのようにデータを保存するのかを教えてくれます。 –