将公里数转换为弧度

时间:2012-08-29 14:28:53

标签: mongodb radians

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

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

5/6371

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

0.000784806153

更新

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

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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

我来到这里,感到困惑,然后我看了一些可汗学院的视频,在那一点上更有意义,然后我能够真正看到来自其他来源的方程式,以进一步教育自己。

这是我的思路。

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

  2. 相反,想象一下地球完全切成两半,只关注其中一半。

  3. enter image description here

    1. 现在面向你一半,看看数学图。
    2. enter image description here

      1. 将数学图表视为从地球中心开始,根据弧长测量地球的边缘,在所有地球都弯曲之后,任何测量都将在地球表面弯曲。
      2. 弧度就像圆圈中的度数,弧长实际上是数学图表中A和B之间的距离。
      3. 对于你来说,它是鸟瞰图的直线,但实际上它只是沿着地球边缘的三维空间中的一条曲线。
      4. 尤里卡!一个灯泡在我脑海中浮现。
      5. distance = earth radius / radians

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

        radians = distance / earth radius

        <强>公里 radians = distance in km / 6371

        <强>英里 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 }
          ];
        

        但教育似乎不是浪费时间。

答案 2 :(得分:1)

要转换

到弧度的距离:将距离除以球体(例如地球)的半径,以与距离测量相同的单位。
弧度到距离:将弧度测量值乘以要转换距离的单位制中球体(例如地球)的半径。

例如:如果要以弧度转换5英里,则需要将距离(5英里)除以球体的半径(也以英里为单位),即3959。那么5/3959是0.0012629451 ...

谢谢

答案 3 :(得分:0)

地球的赤道半径约为 3,963.2英里 s或 6,378.1公里

注意:1 KM = 0.621371英里

以下是一些简单的计算公式:

  

100公里为英里:(100 * 0.621371)

     

辐射100公里: 100 / 6378.1

     

辐射的100英里: 100 / 3963.2

因此,如果您具有公里中的数据,则必须使用(100 / 6378.1);对于英里数据,可以使用 (100 / 3963.2)