首页 > 其他 > 详细

经纬度坐标转换成直角坐标

时间:2021-04-02 10:31:20      阅读:43      评论:0      收藏:0      [点我收藏+]

%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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!