-
2020-09-05 15:41:51
近期搜了下经纬度坐标转换成直角坐标的程序和原理啥的,哎,真难啊,其实道理都懂吧,下面直接贴代码,
主要是加了个for循环而言,优化输出效果。
%%%MATLAB程序实现经纬度转换成平面尔坐标: M_PI=3.14159265358979323846; L = 6381372 * M_PI * 2; %地球周长 W = L; % 平面展开后,x轴等于周长 H = L / 2; % y轴约等于周长一半 mill = 2.3; % 米勒投影中的一个常数,范围大约在正负2.3之间 position=[120.7015202,36.37423; 120.6987175,36.37457569; 120.6997954,36.37591239; 120.70691,36.37579616; 120.7056165,36.37248342; 120.7031731,36.37753964; 120.6928965,36.37800457; 120.6943337,36.37521499; 120.6973521,36.37876006; 120.6962022,36.37643544; 120.7011609,36.37905063; 120.6939026,36.38021291; 120.6983582,36.38056159; 120.7025263,36.38120084; 120.6914592,36.38201441; 120.6960585,36.38247931; 120.7005141,36.38276987; 120.6998673,36.37079794; 120.6928965,36.37079794; 120.6964897,36.36824059; 120.6969209,36.37143727; 120.7052571,36.36899618; 120.7088504,36.37021674; 120.7087066,36.36731063; 120.7130185,36.36829872; 120.6896626,36.36661314; 120.6937588,36.36242812; 120.6993643,36.38741865; 120.7129466,36.37201847; 120.7002266,36.36428816;]%30个经纬度坐标点 n=size(position,1); %%lon=120.7015202;%经度 %%lat=36.37423;%纬度 new_position=[]; for i =1:n lon=position(i,1); lat=position(i,2); x = lon * M_PI / 180; % 将经度从度数转换为弧度 y = lat * M_PI / 180; %将纬度从度数转换为弧度 y1 = 1.25 * log(tan(0.25 * M_PI + 0.4 * y)); % 米勒投影的转换 % 弧度转为实际距离 dikaerX = (W / 2) + (W / (2 * M_PI)) * x ; %笛卡尔坐标x dikaerY = (H / 2) - (H / (2 * mill)) * y1 ;%笛卡尔坐标y new_position(i,1)=dikaerX; new_position(i,2)=dikaerY; fprintf('第%d个点的',i) fprintf('坐标是=(%f %f);',new_position(i,1),new_position(i,2)) fprintf('\n') end
更多相关内容 -
经纬度坐标转换为平面坐标的matlab实现
2019-11-16 10:06:57批量点,矩阵形式给出,MATLAB经纬度坐标转换为平面坐标;Mercator投影变换。调用单点经纬度坐标转换为平面坐标的函数也在文件中。博客中有详细解释和C++代码... -
单点经纬度转换坐标
2019-02-25 13:04:20MATLAB—经纬度坐标转换为平面坐标;Mercator投影变换。这个如果出现不合理转换请查看我的另一篇(正常是可以的)单点经纬度转换坐标,那个需要积分多一点(后台审核积分)。博文中含有这几个坐标转换的文档解释 -
MATLAB—经纬度坐标转换为平面坐标
2019-02-23 11:03:27XY平面被当作Mercator投影平面,Y轴和X轴原点分别设为0纬度和0经度。通过如下公式将地理坐标变换到Mercator投影平面。由于标准电子海图/航道图使用WGS84坐标系,本文使用WGS84参数进行变换。投影基准纬度为0度。 ...- 原理示意图:
Mercator投影变换示意图
2. 公式:XY平面被当作Mercator投影平面,Y轴和X轴原点分别设为0纬度和0经度。通过如下公式将地理坐标变换到Mercator投影平面。由于标准电子海图/航道图使用WGS84坐标系,本文使用WGS84参数进行变换。投影基准纬度为0度。
公式参数如下:
X:水平直角坐标,单位为米(m);
Y:纵向直角坐标,单位为米(m);
B:纬度,单位为弧度(rad);
L:经度,单位为弧度(rad);
Bo:投影基准纬度,Bo =0,单位为弧度((rad);
Lo:坐标原点的经度,Lo =0,单位为弧度(rad);
a:地球椭球体长半轴,a=6378137.0000,单位为米(m);
b:地球椭球体短半轴,b=6356752.3142,单位为米(m);
e:第一偏心率;
e’:第二偏心率。
N-卯酉圈曲率半径,单位为米(m)。- 代码
单点经纬度坐标转换好用代码原创度高积分需要多
C++语言实现批量数据经纬度坐标转换
批量数据经纬度坐标转换 -
经纬度转XYZ坐标系(matlab代码)
2020-07-08 11:04:45利用matlab将经纬度转换为XYZ坐标,用于相对位置参考和平面制图,精度高,使用方便,可直接在当前程序中调用,仅需配置参考位置,并输入需要转换的经纬度,输出北向夹角和与参考位置之间的距离,采用三角公式计算X、... -
matlab经纬度转地理坐标
2019-01-10 11:41:05该mat文件用于matlab中将经纬度坐标转换成地理坐标,按照北京54,第20度带进行坐标到平面的投影,调用projfwd函数即可。 -
单个点经纬度转换坐标
2019-05-01 17:31:25MATLAB—经纬度坐标转换为平面坐标;Mercator投影变换。(这个程序考虑第一偏心率、第二偏心率)原创度高所以积分多。博文中含有这几个坐标转换的文档解释... -
经纬度坐标转平面坐标,并求两点距离Matlab
2020-08-09 23:09:21%x=[E1,N1];y[E2,N2])经度 ,纬度 function [distance,deg] = Spherediff(x,y,R) if nargin < 3 R = 6378137; %地球半径 end x = deg2rad(x); %度转弧度 y = deg2rad(y);...DeltaS = acos(cos(x(2))*cos(y(2))*cos...%x=[E1,N1];y[E2,N2])经度 ,纬度 function [distance,deg] = Spherediff(x,y,R) if nargin < 3 R = 6378137; %地球半径 end x = deg2rad(x); %度转弧度 y = deg2rad(y); DeltaS = acos(cos(x(2))*cos(y(2))*cos(x(1)-y(1))+sin(x(2))*sin(y(2))); distance = R * DeltaS; %米 DeltaA = atan((x(1)-y(1))*cos(y(2))/(y(2)-y(1))); deg = mod(DeltaA * 180/pi+360,360); %度 end
-
MATLAB将经纬度坐标转换成直角坐标
2021-01-13 23:52:41代码如下%从northEastChina20文本中读取经纬度坐标及台站名,该文件中存放格式为三列,第一列是经度,第二列是纬度,第三列是台站名的三个字母缩写[lon,lat,sta]=textread('northEastChina20','%f %f%s',13);...代码如下
%
从northEastChina20文本中读取经纬度坐标及台站名,该文件中存放格式为三列,第一列是经度,第二列是纬度,第三列是台站名的三个字母缩写
[lon,lat,sta]=textread('northEastChina20','%f %f
%s',13);
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) %在直角坐标下画出这些台站
以上程序会产生两张图,第一张是空白的,因为没有航空轨迹图
第二张就是转换后台站所处的位置
转换后的坐标
以上代码参考修改自http://www.ilovematlab.cn/thread-99440-1-1.html
-
墨卡托投影法将经纬度转换为平面坐标
2020-11-29 15:17:35地球经纬度转换为平面坐标,想必是数学建模里面经常会遇到的问题。 由于地球是一个近似椭圆,因此用经纬度确定的坐标,无法直接使用平面几何的计算公式计算距离等数据。使用墨卡托投影法将经纬度坐标投影为平面坐标... -
平面坐标与经纬度的转换
2013-11-24 21:41:01C#调用dll,实现平面坐标与经纬度的转换。 椭球体选择: 北京54 西安80 WGS84 National2000 投影方式: 高斯 Mercator UTM -
数学建模暑期集训实战:经纬度转换为平面坐标
2021-08-19 15:42:12在一些题目中,给定目标点的经纬度,需要通过算法将其转换成平面坐标,以便更精确地计算距离。 使用墨卡托投影法将经纬度坐标投影为平面坐标。 matlab代码 function [x,y]=ll_xy(lng, lat) earthRad = 6378137.0;... -
如何把经纬度转化为大地坐标
2021-04-20 09:32:38二:输出的coordinate.txt文件里数据怎样处理精度问题,就像您贴出来的转换后的坐标似地能保留到小数点后很多位?请看附录二附录一:我的程序>> L=dlmread('hangji01.txt');axesm utmZ=utmzone(L(1,1... -
计算UTM坐标转换为经纬度坐标
2015-04-06 13:44:42计算UTM坐标转换为经纬度坐标 根据UTM定义 Excel表格自动计算 输入UTM坐标参数,自动计算并且输出经纬度坐标 Excel表格自动计算 输入UTM坐标参数,自动计算并且输出经纬度坐标 Excel表格自动计算 输入UTM坐标参数... -
高斯平面坐标转经纬度
2019-01-18 15:31:24MATLAB 代码,高斯平面坐标转换为经纬度, 6度带,坐标系为WGS84. MATLAB 代码,高斯平面坐标转换为经纬度, 6度带,坐标系为WGS84. -
批量点经纬度转换坐标
2019-05-01 17:38:18批量点,矩阵形式给出,MATLAB经纬度坐标转换为平面坐标;Mercator投影变换。需要调用单点经纬度坐标转换为平面坐标的函数 -
matlab经纬度坐标与高斯坐标的转换(proj4)-5
2019-04-12 18:58:44北京54,西安80,wgs84坐标都是是大地坐标,也就是我们通常所说的...UTM是一种投影坐标,是将球面经纬度坐标经过投影算法转换成的平面坐标,即通常所说的XY坐标. WGS-84坐标系 WGS-84坐标系(World Geodetic Sy... -
Google地图经纬度与平面坐标的相互转换、简单地图Demo
2014-07-24 01:24:39这是我的文章【Google地图经纬度与平面坐标的相互转换、简单地图Demo】的附件,内含无水印世界地图、简单地图demo源码 接到公司派下来的一个任务,让我做一个简单的地图Demo,要求是输入城市名,然后在地图上标记出... -
平面坐标和经纬度坐标相互转换
2022-03-29 13:45:08/// 将经纬度点转换为平面坐标。 /// </summary> /// <param name="map"></param> /// <param name="x"></param> /// <param name="y"></param> /// <returns&... -
大地坐标系高斯投影转换成平面直角坐标系MATLAB程序.rar
2020-02-16 16:21:16程序包含两个函数,其中[Gaussian_X,Gaussian_Y]=convert84BLToGauss(longitude,latitude) 函数将经纬度转为o-xy坐标;[longitude,latitude]=convert84GaussToBL(X,Y) 函数将o-xy坐标转为经纬度;选用的6度带宽。 -
利用Matlab进行地理坐标和直角坐标相互转换
2019-03-29 10:29:06Matlab版本:8.1.0.604 (R2013a) 这里需要用到的命令有:maps, defaultm, projfwd, projinv 1, 查看有哪些地图投影方式: 运行maps查看有哪些投影方式 >> maps MapTools Projections CLASS NAME..... -
matlab开发-gps坐标转换
2019-08-21 11:31:37matlab开发-gps坐标转换。操作GPS位置数据的实用程序 -
经纬度、平面坐标系转换方法
2016-11-13 16:28:57这里以从XY到经纬度的转换为例:首要要明确 XY使用的坐标系XY点所在分带的中央子午线,这个不清楚自己去百度分带方法XY的格式:在坐标的使用中通常在Y坐标前加入了带号,计算时需要去掉代号再计算一定要分清XY... -
经纬度坐标转平面笛卡尔坐标
2008-11-02 21:27:54经纬度转平面坐标,传入经纬度值,传出平面坐标值,转换是等距离转换。 -
地心坐标系转换为地理坐标系
2019-04-15 09:58:34地心坐标系转换为地理坐标系,MATLAB程序,简单易懂,适合初学者。 -
matlab中怎么将坐标轴改为经纬度坐标轴
2021-04-20 00:46:49像素转化为来经纬度不难吧线性源方程组比如bai开始的1像素du代表50度,101像素代表zhi100度y=ax+b50=a+b100=101a+b求得a,b,像素和经纬度的dao转换关系就可以得到。接下来是自定义坐标轴的问题,可以这么用例如:set... -
matlab投影与坐标转换程序
2016-10-27 10:52:12利用matlab编写的投影与坐标转换程序。 -
【备忘录】UTM坐标系与经纬度转换 MATLAB C语言
2021-07-31 17:44:30由于需要对经纬度信息进行卡尔曼滤波,而且系统状态含有速度信息,所以要使用基于米定位的坐标系。故而需要先把经纬度信息转为UTM信息。 需要保证输入的观察值Ck的UTM区域要与当前拍的先验估计值保持在同一个区域... -
MATLAB在测绘80与2000坐标系转换中的应用
2021-04-20 03:09:02城市地理176 MATLAB在测绘80与2000坐标系转换中的应用 熊高翔 (成都理工大学,四川 成都 610051) 摘要:2008 年 7 月 1 日起我国正式启用 2000 国家大地坐标系作为国家法定坐标系。对现代测绘工作来说,对 80 西安... -
大地经纬度坐标与地心地固坐标的的转换
2021-08-29 13:48:47详细介绍了大地经纬度坐标与地心地固坐标的的转换的推导过程,并且给出了具体的代码实现。