Преобразование километров в радианы

Мне нужно преобразовать километры в радианы. Это правильная формула? Мне нужны радианы для ближайшей сферы в MongoDB.

Если мне нужно преобразовать 5 километров в радианы, я делаю это:

5/6371

И я получаю этот результат (это кажется правильным):

0.000784806153

UPDATE

Это не математическая проблема, мне действительно нужно знать, выполняю ли я правильные вычисления от километров до радианов, чтобы иметь возможность делать геопространственные запросы с помощью MongoDB.

Ответы

Ответ 1

Километры в радианах или расстояние и в радианах

Я прибыл сюда, был смущен, затем я посмотрел несколько видеофильмов об академии Хана, и в тот момент это имело больше смысла, и тогда я смог реально взглянуть на уравнения из других источников, чтобы получить дополнительное образование.

Здесь мой ход мыслей.

  1. Я вижу диаграмму о радианах и сначала думаю, что радиус от точки геолокации неверен.

  2. Вместо этого представьте, что земля идеально разрезана пополам и просто сфокусируйтесь на одной из половинок.

enter image description here

  1. Теперь поверните эту половину к себе и посмотрите на математическую диаграмму.

enter image description here

  1. Представьте себе математическую диаграмму, которая показывает, как центр Земли измеряет край земли на основе длины дуги, после того как вся земля искривлена, поэтому любое измерение будет искривлено на поверхности земли.
  2. Радианы подобны градусам в круге, а длина дуги - буквально расстояние между A и B на математической диаграмме.
  3. Для вас это прямая линия с высоты птичьего полета, но на самом деле это просто кривая в трехмерном пространстве вдоль края земли.
  4. Эврика! У меня в голове зажглась лампочка.

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, в частности, с использованием mongoose в node.js

Несмотря на все мои усилия, mongo не будет вести себя правильно, как описано для запроса $ geoNear по 2d индексу. никогда не работал

  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

Вы правы. В сферической геометрии вы делите расстояние с радиусом сферы. Имейте в виду, что вы должны держать единицы. Поэтому, если вы подсчитаете радиус сферы в километрах, вы должны использовать расстояние в километр. Если вы используете мили, вы должны использовать радиус Земли в милях (приблизительно: 3,963.2).

Ответ 3

Чтобы преобразовать:

расстояние до радианов: разделите расстояние на радиус сферы (например, Земли) в тех же единицах, что и при измерении расстояния.
радианы на расстояние: умножьте радиан на радиус сферы (например, Земли) в системе единиц, в которую вы хотите преобразовать расстояние.

например,: если вы хотите преобразовать 5 миль в радианах, то нам нужно разделить расстояние (5 миль) на радиус сферы (также в милях), который равен 3959. тогда 5/3959 равен 0,0012629451...

Спасибо

Ответ 4

Экваториальный радиус Земли составляет приблизительно 3 963,2 мили с или 6 378,1 километра.

Примечание: 1 км = 0,621371 миля

Вот несколько простых формул для расчета:

100 KM to Miles : (100 * 0.621371)

100 KM to radiant : 100/6378.1

100 Miles to radiant : 100/3963.2

Поэтому, если у вас есть данные в километрах, вы должны использовать (100/6378.1), а для миль вы можете использовать (100/3963.2)