mongoDBに格納されている5mポイントをクラスタリングしようとしています。 1つのクエリの最大結果は現在約1メートルなので、最初のビジュアルにはPruneClusterを使用することに決めました。ポイントはgeoJSONオブジェクトとして格納され、2dsphereインデックスがあります。Node.js mongodbからgeojsonをフロントエンドで使用できるオブジェクトに渡す方法
私はプレビュー版で収集し、ルート結果から、LOCフィールドを返すよう、ポリゴン内のポイントを見つけるために、ネイティブのNode.jsドライバおよびクエリを使用するMongoDBに接続:
router.get('/map', function(resq,res) {
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/airboost';
MongoClient.connect(url, function(err, db) {
if(err){
console.log('Unable to connect to db ', err);
} else {
console.log('Connected!!!');
var collection = db.collection('listingsF');
collection.find({
loc: {
$geoWithin: {
$geometry: {
type : "Polygon" ,
coordinates: [[[121.48521363894814,31.41360430073249],[...],[121.48865692654915,31.41168940543709]]]
}
}
}
},{loc:1}).toArray(function(err, result){
if (err) {
res.send(err);
} else if (result.length) {
res.send(result);
} else {
res.send('Nothing found');
}
db.close();
});
}
});
});
私はのリストを取得
[
{
"_id": "567f972bad55ac0797baa75b",
"loc": {
"type": "Point",
"coordinates": [
-85.84556526181,
10.29620625503
]
}
},
{
"_id": "567f972bad55ac0797baa75c",
"loc": {
"type": "Point",
"coordinates": [
-54.943878777465,
-34.964002797642
]
}
}
]
その後、私は、パブリックフォルダ/からスクリプトで機能するように何とかその結果を渡す必要がある、だから私はリーフレットマップ上のクラスタを表示することができます:
このようなオブジェクトjadeを使ってコンテンツを印刷することはできますが、mongodbのすべてのデータをマーカーとしてPruneClusterに渡す方法はわかりません。私は方向にちょうどポイントを完全なコードが必要はありません。誰か助けてくれますか?
は、あなたの答えをありがとう!あなたは私が緯度をどのように取るのか、dbから得るgeojsonからlngを取るのか、という方向を教えてくれますか? – toHo
うわーありがとう!あなたが望むなら、結果を共有するコードになっています。 – toHo
あなたはウェルカムです!構造化のためのspred演算子 "..."の使用に興味がある場合は、こちらをご覧ください:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator –