怎样80坐标转换经纬度和经纬度的转换

查看: 21732|回复: 27|关注: 0
如何把经纬度转化为大地坐标
关注者: 9
地学中,平常外出测数据,我们都用手持GPS来获取航迹,或者路线,这样获取的数据一般会有基本的两列
它们的单位是度
而在实际应用中我们常常需要用m来表示,碰到了很多要把经纬度转为大地坐标的问题,目前在论坛,在网上还没有碰到
比较彻底的解决方法,因为投影有很多种,坐标系也有很多种。
今天就利用matlab的地图工具箱来解决此问题,提出个人方法,欢迎拍砖
下面是生成的一些坐标数据:x=linspace(37,38,20);
y=linspace(120,121,20);
L=[x;y]';复制代码
方法一:
利用matlab自带的UTM投影系统[code]axesm utm
Z=utmzone(37,121);
setm(gca,'zone',Z)
h = getm(gca)
R=zeros(size(L));
for i=1:length(L)
[x,y]= mfwdtran(h,L(i,1),L(i,2));
R(i,:)=[x;y];
end复制代码方法二:
读入geotiff文件利用它的几何信息R1=zeros(size(L));
info = geotiffinfo('D:\shandong\丁字湾\wangcun_geo.tif');
for i=1:length(L)
[x,y]= projfwd(info,L(i,1),L(i,2));
R1(i,:)=[x;y];
end
复制代码结果如下:& vpa(R)
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]复制代码&& vpa(R1)
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]
[ , ]复制代码
细心一点会发现用两种方法得出的坐标其实不一样
这是因为长短半轴设置不同造成的
[ 本帖最后由 liuyalong008 于
18:45 编辑 ]
关注者: 1
错误什么原因呢
[ 本帖最后由 mumu228 于
20:29 编辑 ]
关注者: 1
x=linspace(37,38,20);
y=linspace(120,121,20);
Z=utmzone(37,121);
setm(gca,'zone',Z)
h = getm(gca)
R=zeros(size(L));
for i=1:length(L)
[x,y]= mfwdtran(h,L(i,1),L(i,2));
R(i,:)=[x;y];
我这样输入的时候会出现
??? Error using ==& setm Axis handle must refer to a map
问题在哪呢?
关注者: 9
回复 2# mumu228 的帖子
替换你的文件名字即可
L=dlmread('position.txt');&&% txt-style,your filename,data format--&latitude,longitude
axesm utm
Z=utmzone(L(1,1),L(1,2));
setm(gca,'zone',Z)
h = getm(gca)
R=zeros(size(L));
for i=1:length(L)
[x,y]= mfwdtran(h,L(i,1),L(i,2));
R(i,:)=[x;y];
end
dlmwrite('coordinate.txt',R)
复制代码
关注者: 1
回复 4# liuyalong008 的帖子
position.txt& &里面坐标应该怎样表示呢?
关注者: 9
QQ截图未命名.jpg (41.06 KB, 下载次数: 6)
20:40 上传
关注者: 1
回复 6# liuyalong008 的帖子
txt文件数据修改成我的数据后,替换了文件名,程序运行后出现了两个问题:
一:弹出图像框&&但没有内容& &图像框里是空白的,这事为什么?
二:输出的coordinate.txt文件里数据怎样处理精度问题,就像您贴出来的转换后的坐标似地能保留到小数点后很多位?请看附录二
附录一:我的程序
&& L=dlmread('hangji01.txt');
Z=utmzone(L(1,1),L(1,2));
setm(gca,'zone',Z)
h = getm(gca)
R=zeros(size(L));
for i=1:length(L)
[x,y]= mfwdtran(h,L(i,1),L(i,2));
R(i,:)=[x;y];
dlmwrite('coordinate.txt',R)
& &&&mapprojection: 'utm'
& && && && &&&zone: '50S'
& && &&&angleunits: 'degrees'
& && && && &aspect: 'normal'
& &&&falsenorthing: 0
& && &falseeasting: 500000
& && & fixedorient: []
& && && && & geoid: [6..0817]
& && & maplatlimit: [32 40]
& && & maplonlimit: [114 120]
& && &mapparallels: []
& && &&&nparallels: 0
& && && && &origin: [0 117 0]
& && & scalefactor: 0.9996
& && && &&&trimlat: [-80 84]
& && && &&&trimlon: [-180 180]
& && && && & frame: 'off'
& && && && & ffill: 100
& && &&&fedgecolor: [0 0 0]
& && &&&ffacecolor: 'none'
& && && &flatlimit: [32 40]
& && &&&flinewidth: 2
& && && &flonlimit: [-3 3]
& && && && &&&grid: 'off'
& && && &galtitude: Inf
& && && && &gcolor: [0 0 0]
& && &&&glinestyle: ':'
& && &&&glinewidth: 0.5000
& & mlineexception: []
& && && &mlinefill: 100
& && &&&mlinelimit: []
& &&&mlinelocation: 1
& && &mlinevisible: 'on'
& & plineexception: []
& && && &plinefill: 100
& && &&&plinelimit: []
& &&&plinelocation: 1
& && &plinevisible: 'on'
& && && &fontangle: 'normal'
& && && &fontcolor: [0 0 0]
& && && & fontname: 'helvetica'
& && && & fontsize: 9
& && && &fontunits: 'points'
& && &&&fontweight: 'normal'
& && & labelformat: 'compass'
& &&&labelrotation: 'off'
& && &&&labelunits: 'degrees'
& &&&meridianlabel: 'off'
& & mlabellocation: 1
& & mlabelparallel: 40
& && & mlabelround: 0
& &&&parallellabel: 'off'
& & plabellocation: 1
& & plabelmeridian: 114
& && & plabelround: 0
附录二:coordinate.txt文件里部分数据
关注者: 9
回复 7# mumu228 的帖子
axesm&&utm是设置投影的
什么都不显示很正常,因为你没有数据显示,当然你可以把你的航迹显示上去
数据精度问题你可以把数据转化为字符串再保存
或者用fprintf命令来实现
关注者: 1
回复 8# liuyalong008 的帖子
问题已解决,谢谢刘兄!
弓虽~~~~~~~~~
Powered by&& 查看话题
怎样把拐点坐标转换成经纬度坐标?
如题所示,希望广大虫友们给予帮助,非常感谢.如图所示,如何把表里的数据转换成经纬度坐标,备注,风电机
QQ图片28.jpg
告诉我方法,就可以 下一个大地坐标转换软件就OK了
/forum.php?mod=viewthread&tid=7459460&_dsign=e46dea97
:D : Originally posted by 通天路 at
下一个大地坐标转换软件就OK了
/forum.php?mod=viewthread&tid=7459460&_dsign=e46dea97
:D 终于看到专家了:arm:,如果我想把经纬坐标转化为平面坐标这个也可以么 : Originally posted by 通天路 at
下一个大地坐标转换软件就OK了
/forum.php?mod=viewthread&tid=7459460&_dsign=e46dea97
:D 下个那个软件就可以了吗?、? 方法很多种,坐标转换软件是一种,运用mapgis或arcgis进行转换也可以 您是在泄密,要有保护国家安全的意识 : Originally posted by yyw704724 at
方法很多种,坐标转换软件是一种,运用mapgis或arcgis进行转换也可以 我看看另两种可不可以哈,非常感谢 : Originally posted by wsy007 at
您是在泄密,要有保护国家安全的意识 呃,这就是泄密么,,,不会吧,这个,这个,,,我也不知道哎,就算你们知道了, 对你们也没有用啊 这个好弄吧[转载]GPS经纬度的表示方法及换算
  想要认识GPS中的经纬度,就必须先了解GPS,知道经纬度的来源:
  1. GPS系统组成
  GPS是 Gloabal Positioning System
的简称,意为全球定位系统,主要由地面的控制站、天上飞的卫星、咱们手里拿的接收机三大块组成,我们所使用的GPS包括手持机和车载导航机本质上都是GPS接受机。
  2. GPS接收机
  接收机大大小小,千姿百态,有袖珍式、背负式、车载、船载、机载什么的。一般常见的手持机接收L1信号,还有双频的接收机,做精密定位用的。
  3. 坐标系
  地形图坐标系:我国的地形图采用高斯-克吕格平面直角坐标系。在该坐标系中,横轴:赤道,用Y表示;纵轴:中央经线,用X表示;坐标原点:中央经线与赤道的交点,用O表示。赤道以南为负,以北为正;中央经线以东为正,以西为负。我国位于北半球,故纵坐标均为正值,但为避免中央经度线以西为负值的情况,将坐标纵轴西移500公里。
  北京54坐标系:1954年我国在北京设立了大地坐标原点,采用克拉索夫斯基椭球体,依此计算出来的各大地控制点的坐标,称为北京54坐标系。
  GS84坐标系:即世界通用的经纬度坐标系。
  6度带、3度带、中央经线。
  我国采用6度分带和3度分带:
  1∶2.5万及1∶5万的地形图采用6度分带投影,即经差为6度,从零度子午线开始,自西向东每个经差6度为一投影带,全球共分60个带,用1,2,3,4,5,……表示。
  1∶1万的地形图采用3度分带,从东经1.5度的经线开始,每隔3度为一带,用1,2,3,……表示,全球共划分120个投影带
  4. 经纬度的来源
  为了精确地表明各地在地球上的位置,人们给地球表面假设了一个坐标系,这就是经纬度线。那么,最初的经纬度线是怎么产生又是如何测定的呢公元344年,亚历山大渡海南侵,继而东征,随军地理学家尼尔库斯沿途搜索资料,准备绘一幅“世界地图”。他发现沿着亚历山大东征的路线,由西向东,无论季节变换与日照长短都很相仿。于是做出了一个重要贡献——第一次在地球上划出了一条纬线,这条线从直布罗陀海峡起,沿着托鲁斯和喜马拉雅山脉一直到太平洋。
  亚历山大帝国昙花一现,不久就瓦解了。但以亚历山大为名的那座埃及城里,出现了一个著名图书馆,多年担任馆长的埃拉托斯特尼博学多才,精通数学、天文、地理。他计算出地球的圆周是46
250千米,画了一张有7条经线和6条纬线的世界地图。&
  5. 经纬度的表示
  1884年国际经度会议规定,以通过英国伦敦格林威治天文台子午仪中心的经线为0°经线。从0°经线往东叫东经,往西叫西经,东、西各分180°。习惯上以西经20°和东经160°为分界把地球分为东西两个半球。假如从地轴的正中间将地球切成南北两半,上边的一半叫北半球,下边的一半叫南半球。被切的这个平面,叫赤道面。赤道面与地球表面相交的线叫赤道。纬线从赤道往两极越来越短,到了两极就缩小成一个点了。科学家们把赤道定为0°纬线,从赤道向两极各分为90°,赤道以南叫南纬,赤道以北叫北纬。在计算机或GPS上经纬度经常用度、分、秒和度.度、分.分、秒.秒的混合方式进行表示,度、分、秒间的进制是60进制,度.度、分.分、秒.秒的进制是100进制,换算时一定要注意。可以近似地认为每个纬度之间的距离是不变的111KM,每分间1.85KM,每秒间31.8M。经度间的距离随纬度增高逐渐减小,可按一下公式计算:
  经度1°长度=111.413cosφ一0.094cos3φ公里(纬度φ处)。
  一般从GPS得到的数据是经纬度。经纬度有多种表示方法。
  1.) ddd.ddddd, 度 . 度的十进制小数部分(5位)例如:31.12035&
  2.) ddd.mm.mmm,度 . 分 . 分的十进制小数部分(3位)例如 31&10.335'
  3.)ddd.mm.ss, 度 . 分 . 秒 例如 31&12'42"
  地球上任何一个固定的点都可以用确定的经纬度表示出来。
  关于经纬度坐标转换的方法&
  一、十进制转换成经纬度
  把经纬度转换成十进制的方法很简单&
  如下就可以了
   Decimal Degrees = Degrees + minutes/60 + seconds/3600
  例:57°55'56.6" =57+55/60+56.6/
  114°65'24.6"=114+65/60+24.6/3600=结果自己算!
  如把经纬度 (longitude,latitude)
(205.,57.8)
  转换据成坐标(Degrees,minutes,seconds)(205°23'44.1",57°55'56.6")。
  步骤如下:
  1, 直接读取"度":205
  2,(205.-205)*60=23. 得到"分":23
  3,(23.-23)*60=44. 得到"秒":44.1
  采用同样的方法可以得到纬度坐标:57°55'56.6"&
  如果需要转换的经纬度数据很多,可以借助Sql查询分析器或Excel来进行转换。这里介绍用Sql实现。
  假如我的数据库里的表tableName有以下数据
  CREATE TABLE [dbo].[tableName](
   [ID] [int] IDENTITY(1,1) NOT NULL,
   [address] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
   [longitude] [float] NULL,
   [latitude] [float] NULL
  ) ON [PRIMARY]
  表中的数据
  ID address longitude latitude&
  0 add1 205..&
  1 add2 205..&
  2 add3 205..&
  3 add4 205..&
  在sql 查询分析器里直接调用以下查询语句
  --Declare The longitude,latitude
  declare @LoaDeg varchar(50)
  declare @LoaMin varchar(100)
  declare @LoaSec varchar(100)
  declare @LatDeg varchar(50)
  declare @LatMin varchar(100)
  declare @LatSec varchar(100)
  --Set The Variable
  Set @LoaDeg='left(longitude,3)'
  Set @LoaMin='left((longitude-'+@LoaDeg+')*60,2)'
@LoaSec='left((((longitude-'+@LoaDeg+')*60-'+@LoaMin+')*60),4)'
  Set @LatDeg='left(longitude,3)'
  Set @LatMin='left((longitude-'+@LatDeg+')*60,2)'
@LatSec='left((((longitude-'+@LatDeg+')*60-'+@LatMin+')*60),4)'
  --Execute The Command
  exec('select ID,address,longitude,
  '+@LoaDeg+' as LoaDegree,
  '+@LoaMin+' as LoaMinute,
  '+@LoaSec+' as LoaSecond
  '+@LatDeg+' as LatDegree,
  '+@LatMin+' as LatMinute,
  '+@LatSec+' as LatSecond
   from TableName')
  即可得到:
  ID address longitude LoaDegree LoaMinute LoaSecond latitude
LatDegree LatMinute LatSecond
  1 add1 205. 23 44 57. 23 44
  2 add2 205. 23 28 57. 23 28
  3 add3 205. 22 45 57. 22 45
  4 add4 205. 22 17 57. 22 17
关于分秒表示的实际距离,可以如下推算:
地球子午线长是39940.67公里,纬度改变一度合110.94公里,一分合1.849公里,一秒合30.8米,赤道圈是40075.36公里,北京地区纬在北纬40度左右,纬度圈长为40075*sin(90-40),此地经度一度合276公里,一分合1.42公里一秒合23.69米
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。怎样把经纬度坐标转换为空间直角坐标?
怎样把经纬度坐标转换为空间直角坐标?
&& 1、地理经纬度定义
连接南北两极的并同纬线垂直相交线,也称子午线。经线指示南北方向;所有经线都呈半圆状且长度相等;两条正相对的经线形成一个经线圈;任何一个经线圈都能把地球平分为两个半球。
在地球仪上,顺着东西方向,环绕地球仪一周的圆圈,叫做纬线。所有的纬线都相互平行,并与经线垂直,纬线指示东西方向。纬线圈的大小不等,赤道为最大的纬线圈,从赤道向两极纬线圈逐渐缩小,到南、北两极缩小为点。
2、怎样把经纬度坐标转换为空间直角坐标?
3、转换软件
(1)用mapgis进行直角坐标和经纬度坐标转换
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 80坐标转换经纬度 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信