Расстояния на сфере

Много геопространственных областей (сейсмология, например) описывают расстояния между точками на поверхности земли как углы. Это - просто результат деления длины самой короткой большой круговой дуги, соединяющей точки пары радиусом Земли (или безотносительно планеты, которую каждый измеряет). Это дает угол (в радианах) подухаживаемый лучами от каждой точки, которые присоединяются в центре Земли (или другая планета). Это иногда называется "сферическим расстоянием". Можно таким образом вызвать получившийся номер "расстояние в радианах". Вы могли также вызвать тот же номер "расстояние в наземных радиусах". Когда вы работаете с преобразованиями геоданных, имеете это в виду.

Можно легко преобразовать тот угол от радианов до степеней. Например, можно вызвать distance, чтобы вычислить расстояние в метрах от Лондона до Куала-Лумпура:

latL =  51.5188;
lonL =  -0.1300;
latK =   2.9519;
lonK = 101.8200;
earthRadiusInMeters = 6371000;
distInMeters = distance(latL, lonL,...
                latK, lonK, earthRadiusInMeters)

distInMeters =
  1.0571e+007
Затем преобразуйте результат в угол в радианах:
distInRadians = distInMeters / earthRadiusInMeters

distInRadians =
    1.6593
Наконец, преобразуйте в угол в градусах:
distInDegrees = rad2deg(distInRadians)

distInDegrees =
   95.0692
Это действительно только целесообразно и приводит к точным результатам, когда мы аппроксимируем Землю (или планета) как сфера. На эллипсоиде можно только описать расстояние вдоль геодезической кривой с помощью единицы длины.

Программное обеспечение Mapping Toolbox™ включает набор шести функций, чтобы удобно преобразовать расстояния вдоль поверхности Земли (или другая планета) от модулей километров (км), морские мили (нм) или статутные мили (см) к сферическим расстояниям в градусах (градус) или радианы (рад):

  • km2deg, nm2deg и sm2deg идут от длины до угла в градусах

  • km2rad, nm2rad и sm2rad идут от длины до угла в радианах

Вы могли заменить итоговые два шага в предыдущем примере с

distInKilometers = distInMeters/1000;
earthRadiusInKm = 6371;
km2deg(distInKilometers, earthRadiusInKm)

ans =
   95.0692
Поскольку они, преобразование может быть инвертировано, тулбокс, включают еще шесть функций удобства, которые преобразовывают угол, за которым подухаживают в центре сферы, в градусах или радианов, к большому круговому расстоянию вдоль поверхности той сферы:

  • deg2km, deg2nm и deg2sm идут от угла в градусах к длине

  • rad2km, rad2nm и rad2sm идут от угла в радианах к длине

Когда дали один входной параметр, все 12 функций принимают радиус 6 371 000 метров (6 371 км, 3 440,065 нм или 3 958,748 см), который широко используется в качестве оценки среднего радиуса Земли. Дополнительный второй параметр может использоваться, чтобы задать планетарный радиус (в единицах продолжительности вывода) или имя объекта в Солнечной системе.

Длина дуги как Угол на расстоянии и считает Функции

Определенные синтаксисы distance и reckon функционируют углы использования, чтобы обозначить расстояния в пути, описанном выше. В следующих операторах аргумент области значений, arclen, в градусах (наряду со всеми другими вводами и выводами):

[arclen, az] = distance(lat1, lon1, lat2, lon2)
[latout, lonout] = reckon(lat, lon, arclen, az)
Путем добавления дополнительного аргумента units можно использовать радианы вместо этого:
[arclen, az] = distance(lat1, lon1, lat2, lon2, 'radians')
[latout, lonout] = reckon(lat, lon, arclen, az, 'radians')
Если аргумент ellipsoid обеспечивается, однако, то arclen имеет единицы длины, и они совпадают с единицами полуглавной длины оси ссылочного эллипсоида. Если вы задаете ellipsoid = [1 0] (сфера единичного радиуса), arclen может считаться или углом в радианах или длиной, заданной в модулях наземных радиусов. Это имеет то же значение так или иначе. Таким образом, в следующем вычислении, lat1, lon1, lat2, lon2 и az в градусах, но arclen, будет казаться, будет исчисляться в радианах:

[arclen, az] = distance(lat1, lon1, lat2, lon2, [1 0])

Сводные данные: доступные функции преобразования расстояния и угла

Следующая таблица показывает модуль к единичному расстоянию Mapping Toolbox и функции преобразования дуги. Они все принимают скаляр, вектор и входные параметры более высокой размерности. Первые два столбца и строки включают угловые модули, последние три включают единицы расстояния:

Функции, которые Непосредственно Преобразовывают Углы, Длины и Сферические Расстояния

\convertДо степенейК радианамК километрамК морским милямК статутным милям
СтепениtoDegrees
fromDegrees
deg2rad
toRadians
fromDegrees
deg2kmdeg2nmdeg2sm
Радианыrad2deg
toDegrees
fromRadians
toRadians
fromRadians
rad2kmrad2nmrad2sm
Километрыkm2degkm2rad km2nmkm2sm
Морские милиnm2degnm2radnm2km nm2sm
Статутные милиsm2degsm2radsm2kmsm2nm 

Угловые функции преобразования по главной диагонали, toDegrees, toRadians, fromDegrees, и fromRadians, не могут иметь никаких-op результатов. Они предназначаются для использования в приложениях, которые не имеют никаких предварительных знаний того, какие угловые модули могут быть введены или желаемы, как выведено.