モデルに緯度経度を保存しようとしています。私は自分のモデルを次のように定義しました
attributes: {
point: {type: 'json'}
}
そして、座標を単純に[x、y]として渡しています。しかし、ポイントをNULLとして保存しています。というわけで、どなたか対処法をご存知の方がいらっしゃいましたら、よろしくお願いいたします。これを行う方法がわかりません。
モデルに緯度経度を保存しようとしています。私は自分のモデルを次のように定義しました
attributes: {
point: {type: 'json'}
}
そして、座標を単純に[x、y]として渡しています。しかし、ポイントをNULLとして保存しています。というわけで、どなたか対処法をご存知の方がいらっしゃいましたら、よろしくお願いいたします。これを行う方法がわかりません。
よりファンキーなフィールド型を使用してこれと同様のことを試みましたが、プリミティブ型に分割するとうまくいくことがわかりました。
module.exports = {
attributes: {
speed: {
type: 'string'
},
heading: {
type: 'string'
},
altitude: {
type: 'string'
},
altitudeAccuracy: {
type: 'string'
},
longitude: {
type: 'float',
required: true
},
latitude: {
type: 'float',
required: true
},
accuracy: {
type: 'string'
}
}
};
これは、地理データを格納するための完全なオブジェクトです。
地理位置情報を JSON 属性として持っている場合は、次のように場所を保存できます。
{ "type": "Point", "coordinates": [ 7.88, 47.78 ] } }
2dsphere
次に、このフィールドで MongoDB にインデックスを作成すると
db.collection.createIndex({ geolocation: "2dsphere" })
MongoDB の空間クエリを利用できます。