Преобразуйте направление на карте к азимуту на эллипсоиде
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.
Эта функция использует метод конечной разности. Географические координаты встревожены немного в различных направлениях и спроектированы. Небольшое количество ошибки введено численным расчетом производных и изменением параметров искажения карты.