gpt4 book ai didi

mongodb - 将公里转换为弧度

转载 作者:IT老高 更新时间:2023-10-28 13:06:27 27 4
gpt4 key购买 nike

我需要将公里转换为弧度。这是正确的公式吗?我需要 MongoDB 中近球面的弧度。

如果我需要将 5 公里转换为弧度,我会这样做:

5/6371

我得到了这个结果(看起来是否正确):

0.000784806153

更新

这不是数学问题,我真的需要知道我是否从公里到弧度进行了正确的计算,才能使用 MongoDB 进行地理空间查询。

最佳答案

公里到弧度或距离和弧度的转换

我到了这里,很困惑,然后我看了一些可汗学院的视频,那时它更有意义,然后我能够实际查看其他来源的方程式来进一步教育自己。

这是我的思路。

  1. 我看到一个关于弧度的图表,我首先想到的是地理位置点的半径这是错误的

  2. 相反,想象一下地球被完美地切成两半,然后只关注其中的一半。

enter image description here

  1. 现在将那一半面朝你,看看数学图。

enter image description here

  1. 将数学图想象成从地球中心根据弧长测量地球边缘,毕竟地球是弯曲的,因此任何测量结果都会在地球表面弯曲。
  2. 弧度就像圆中的度数,弧长实际上是数学图中 A 和 B 之间的距离。
  3. 对您来说,鸟瞰图上是一条直线,但实际上它只是沿地球边缘的 3D 空间中的一条曲线。
  4. Eureka !一个灯泡在我脑海里闪过。

距离 = 地球半径 * 弧度

因此有了一些非常简单的代数......

弧度=距离/地球半径

公里弧度 = 距离(公里)/6371

弧度 = 距离 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com