我需要将公里转换为弧度。这个公式正确吗?
我需要MongoDB中近球面的弧度。
如果我需要将5公里转换为弧度,请执行以下操作:
5/6371
我得到这个结果(看起来正确):
0.000784806153
更新
这不是数学问题,我真的需要知道我是否在进行从千米到弧度的正确计算,以便能够使用MongoDB进行地理空间查询。
最佳答案
公里到弧度或距离和弧度转换
我到了这里,感到很困惑,然后我看了一些可汗学院的录像带,这在当时意义更大,然后我便能够从其他来源实际了解方程式,从而进一步自我教育。
这是我的思路。
distance = earth radius * radians
因此,有了一些非常简单的代数...
radians = distance / earth radius
公里
radians = distance in km / 6371
mi
radians = distance in mi / 3959
有时仔细想一想很有趣。
仔细检查一下... https://www.translatorscafe.com/unit-converter/en/length/7-89/kilometer-Earth%E2%80%99s%20equatorial%20radius/
现在关于Mongo v3.2,专门在node.js中使用mongoose
尽管我已尽力而为,mongo仍无法像在2d索引上的$ geoNear查询所记录的那样正常运行。 没用过
let aggregate = [
{
$geoNear: {
near: { type: 'Point', coordinates: lonLatArray },
spherical: false,
distanceField: 'dist.calculated',
includeLocs: 'dist.location',
maxDistance: distanceInMeters / (6371 * 1000),
query: {
mode: 'nearme',
fcmToken: { $exists: true }
}
}
},
{ $skip: skip },
{ $limit: LIMIT }
];
但是,当我更改为2dsphere索引时,它可以正常工作。
let aggregate = [
{
$geoNear: {
near: { type: 'Point', coordinates: lonLatArray },
spherical: true,
distanceField: 'dist.calculated',
includeLocs: 'dist.location',
maxDistance: distanceInMeters,
query: {
mode: 'nearme',
fcmToken: { $exists: true }
}
}
},
{ $skip: skip },
{ $limit: LIMIT }
];
但是,教育似乎从来都不是浪费时间。
关于mongodb - 转换公里到弧度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12180290/