将公里数转换为弧度

Jon*_*ark 18 mongodb radians

我需要将公里数转换为弧度.这是正确的公式吗?在MongoDB中我需要radars for nearsphere.

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

5/6371
Run Code Online (Sandbox Code Playgroud)

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

0.000784806153
Run Code Online (Sandbox Code Playgroud)

UPDATE

这不是一个数学问题,我真的需要知道我是否正在从公里到弧度进行正确的计算,以便能够使用MongoDB进行地理空间查询.

Jas*_*ing 7

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

我到了这里,感到很困惑,然后我看了一些可汗学院的录像带,这在当时意义更大,然后我便能够从其他来源实际了解方程式,从而进一步自我教育。

这是我的思路。

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

  2. 而是想象一下,地球完美地切成两半,只专注于一半。

在此处输入图片说明

  1. 现在,将那一半面向您并查看数学图表。

在此处输入图片说明

  1. 可以将数学图视为从地心开始显示,即根据弧长测量地球的边缘,毕竟地球是弯曲的,因此任何测量都将在地球表面弯曲。
  2. 弧度就像一个圆的度数,而弧长实际上就是数学图中A与B之间的距离。
  3. 对您来说,它是鸟瞰的直线,但实际上,它只是地球边缘3D空间中的一条曲线。
  4. 尤里卡!一个灯泡在我的头上闪着。

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 }
  ];
Run Code Online (Sandbox Code Playgroud)

但是,当我更改为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 }
  ];
Run Code Online (Sandbox Code Playgroud)

但是,教育似乎从来都不是浪费时间。


Sag*_*bes 3

你是对的。在球面几何中,将距离除以球体的半径。请注意,您应该保留单位。因此,如果您计算以公里为单位的球体半径,那么您应该使用以公里为单位的距离。如果您使用英里,那么您应该使用以英里为单位的地球半径(大约:3,963.2)。