%MATLAB将经纬度坐标转换成直角坐标
% 从northEastChina20文本中读取经纬度坐标及台站名,该文件中存放格式为三列,第一列是经度,第二列是纬度,第三列是台站名的三个字母??缩写
C=load(‘17c1-14c1_100ugal.TXT‘);
lon=C(:,1);lat=C(:,2);
% sta=cell2mat(sta); %将cell转换成字符串
latlon20=[lat,lon];%把纬度放在第一列,经度放在第二列
axesm utm %设置投影方式,这是MATLAT自带的Universal Transverse Mercator (UTM)方式
Z=utmzone(latlon20);%utmzone根据latlon20里面的数据选择他认为合适的投影区域,可以是一个台站的经纬度,也可以是所有台站的经纬度(此时是平均)
setm(gca,‘zone‘,Z)
h = getm(gca)
R=zeros(size(latlon20));
for i=1:length(latlon20)
[x,y]= mfwdtran(h,latlon20(i,1),latlon20(i,2));% 调用MATLAB自带的函数,根据先前设置的Z,逐个台站进行转换计算
R(i,:)=[x;y];
end
dlmwrite(‘coordinate.txt‘,R)
figure; plot(R(:,1),R(:,2),‘ro‘,‘linewidth‘,6) %在直角坐标下画出这些台站
===================================================================
mstruct=defaultm(‘mercator‘);
mstruct.geoid=[ 6378137 ,0.0818191908426215];
mstruct.geoid = referenceEllipsoid(‘grs80‘,‘kilometers‘);
mstruct.origin=[0,0,0];
mstruct=defaultm(mstruct);
[x,y] =projfwd(mstruct,lat,lon);
[lat,lon]=projinv(mstruct,x,y);
原文:https://www.cnblogs.com/gisalameda/p/14608823.html