Mongodb 将公里转换为弧度

Mongodb 将公里转换为弧度,mongodb,radians,Mongodb,Radians,我需要把公里转换成弧度。这个公式正确吗? 我需要MongoDB中近球的弧度 如果需要将5公里转换为弧度,请执行以下操作: 5/6371 我得到了这个结果(它看起来正确吗): 更新 这不是一个数学问题,我真的需要知道从公里到弧度的计算是否正确,以便能够使用MongoDB进行地理空间查询。你是正确的。 在球面几何体中,用球体的半径划分距离。 注意你应该保留这些单位。所以如果你以公里为单位计算球体半径,那么你应该以公里为单位计算距离。如果使用英里,则应使用以英里为单位的地球半径(约:3963.2)。

我需要把公里转换成弧度。这个公式正确吗? 我需要MongoDB中近球的弧度

如果需要将5公里转换为弧度,请执行以下操作:

5/6371
我得到了这个结果(它看起来正确吗):

更新

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

你是正确的。 在球面几何体中,用球体的半径划分距离。 注意你应该保留这些单位。所以如果你以公里为单位计算球体半径,那么你应该以公里为单位计算距离。如果使用英里,则应使用以英里为单位的地球半径(约:3963.2)。

公里到弧度或距离和弧度的转换 我来到这里,感到困惑,然后我看了一些可汗学院的视频,在这一点上更有意义,然后我能够从其他来源看方程来进一步教育自己

这是我的思路

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

  • 相反,想象地球完美地切成两半,只关注其中一个

  • 现在把那一半面向你,看数学图
  • 将数学图想象为从地球中心开始,根据弧长测量地球边缘,在地球弯曲之后,任何测量都将在地球表面弯曲
  • 弧度类似于圆中的度数,弧长实际上是数学图中a和B之间的距离
  • 对你来说,这是鸟瞰图上的一条直线,但实际上它只是三维空间中沿着地球边缘的一条曲线
  • 尤里卡!一个灯泡在我脑子里亮着
  • 距离=地球半径*弧度

    所以用一些非常简单的代数

    弧度=距离/地球半径

    km
    radians=以公里为单位的距离/6371

    mi
    radians=以米为单位的距离/3959

    有时候想清楚是很有趣的

    仔细检查这个

    现在关于Mongov3.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 }
      ];
    

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

    要转变观念:

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

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


    多亏了地球的赤道半径约为3963.2英里s或6378.1公里

    注:1公里=0.621371英里

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

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

    距离辐射线100公里:
    100/6378.1

    距离辐射源100英里:
    100/3963.2


    因此,如果你有公里数的数据,那么你必须使用(100/6378.1),对于英里数的数据,你可以使用(100/3963.2)

    角度=弧长/半径。“你就是这么做的吗?”我猜是达菲莫,地球。毕竟,海里是通过将度转换成距离的形式来计算的。那么,划分是个问题吗?我问上面的公式/结果是否正确的原因是,我需要我的iOS应用程序在对我的MongoDB后端执行计算时使用正确的弧度。耳的子午半径约为6367.445公里。角度的弧度度量在下表中给出。看起来你很好。
      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 }
      ];