Преобразуйте направление на карте в азимут на эллипсоиде
az = vinvtran(x,y,th)
az = vinvtran(mstruct,x,y,th)
[az,len] = vinvtran(...)
az = vinvtran(x,y,th)
преобразует угол в проекционном пространстве в точке, заданной как x
и y
в азимутальный угол в географических координатах. Отображаемая в данный момент проекция карты используется для определения проекционного пространства. Углы входа должны быть в тех же модулях, что и заданные текущей проекцией карты. Входами могут быть скаляры или матрицы равного размера. Угол в углу проекционного пространства th
задается как положительный против часовой стрелки от оси X.
az = vinvtran(mstruct,x,y,th)
использует проекцию карты, заданный вход struct
для вычисления проекции карты.
[az,len] = vinvtran(...)
также возвращает длину вектора в системе географических координат. Значение 1 не указывает на искажение шкалы для этого угла.
В то время как векторы вдоль оси Y всегда указывают на север в цилиндрической проекции в нормальном аспекте, они могут указывать на восток или запад севера на конические, азимутальные и другие проекции. Эта функция вычисляет географический азимут для углов в проективном пространстве.
Выборочные расчеты:
axesm('eqdconicstd','maplatlim',[-10 45],'maplonlim',[-55 55]) gridm; framem; mlabel; plabel; axis off mstruct = gcm; [x,y] = projfwd(mstruct,[0 0 0],[-45 0 45]); quiver(x,y,[0.2 0.2 0.2],[0 0 0],0) quiver(x,y,[0 0 0],[0.2 0.2 0.2],0)
vinvtran(x,y,[0 0 0])
ans = 56.1765 90.0000 123.8235
vinvtran(x,y,[90 90 90])
ans = 332.8360 0.0000 27.1640
Это преобразование ограничено областью, заданной пределами системы координат в текущем определении карты.
Измеряют угол географического азимута по часовой стрелке с севера. Измеряют угол проекционного пространства против часовой стрелки от оси X.
Эта функция использует метод конечного различия. Географические координаты слегка возмущаются в разных направлениях и проецируются. Небольшая величина ошибки введена численным расчетом производных и вариацией параметров искажения карты.