GPS经纬度的表示方法及换算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
想要认识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/3600=57.9323888888888114°65'24.6"=114+65/60+24.6/3600=结果自己算! 如把经纬度(longitude,latitude) (205.395583333332,57.9323888888888)转换据成坐标(Degrees,minutes,seconds)(205°23'44.1",57°55'56.6")。步骤如下:1,直接读取"度":2052,(205.395583333332-205)*60=23.734999999920 得到"分":233,(23.734999999920-23)*60=44.0999******** 得到"秒":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]GO表中的数据ID address longitude latitude 0
add1 205.3955833 57.93238889 1 add2 205.3911111 57.95194444 2 add3 205.3791667 57.98916667 3 add4 205.3713889 57.95611111 在sql 查询分析器里直接调用以下查询语句--Declare The longitude,latitudedeclare @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 VariableSet @LoaDeg='left(longitude,3)'Set @LoaMin='left((longitude-'+@LoaDeg+')*60,2)'Set
@LoaSec='left((((longitude-'+@LoaDeg+')*60-'+@LoaMin+')*60),4)'Set @LatDeg='left(longitude,3)'Set @LatMin='left((longitude-'+@LatDeg+')*60,2)'Set
@LatSec='left((((longitude-'+@LatDeg+')*60-'+@LatMin+')*60),4)'--Execute The Commandexec('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 LatSecond1 add1 205.3955833 205 23 44 57.93238889 205 23 442 add2 205.3911111 205 23 28 57.95194444 205 23 283 add3 205.3791667 205 22 45 57.98916667 205 22 454 add4 205.3713889 205 22 17 57.95611111 205 22 17