转自:http://blog.csdn.net/lijie45655/article/details/6771524

手持GPS,正在学习当中,晚上我在谷歌地球上找到端午节要去的目的地,找出了它的经纬度坐标,然后把数值输入GPS,结果一看地图,纳闷了,相差了好几十公里。我又以重庆长江大桥北桥头(石板坡)作为参照物,纬度是N29°33′09.79″,经度是E106°33′29.63″,然后我直接在GPS上输入了N29.33097°,E106.33296°,结果一看航点位置,居然跑到江津去了,吓我一大跳,这个差别也太大了撒。赶紧看看是怎么回事,结果是我自己不懂,以为经纬度标识方式就一种,结果差之毫厘谬以千里,下面就是正确的经纬度格式及转换方式,贴出来供我等菜鸟学习学习,哈哈哈哈,又学到了一点知识。

经纬度格式分为三种:度、度-分、度-份-秒, R% O$ C- h: ^! Z5 b9 f& u6 U/ z

1.) ddd.ddddd °【度 . 度 格式】的十进制小数部分(5位)

2.) ddd°mm.mmm’ 【度 . 分 . 分 格式】的十进制小数部分(3位)
" q' Z8 a1 d- M( \) L. u( Y1 E9 Y1 t: R
3.)   ddd°mm’ss’’ 【度 . 分 . 秒 格式】
9 Q$ r1 y% v  U3 v/ F
Google 使用的是第三种格式  度。分’秒’’

度分转换: $ u* X! }! u% I$ P* N0 y
将度分单位数据转换为度单位数据 
度=度+分/60 & F3 Y4 d/ ^. ^/ A8 _( J/ K
例如: 7 W; n3 ~; t1 v7 r
经度 = 116°20.12’ # \0 p9 P% y2 g( {% A. F$ N" e: }. d1 Q
纬度 = 39°12.34’ 
经度 = 116 + 20.12 / 60 = 116.33533° 
纬度 = 39 + 12.34 / 60 = 39.20567°& D9 ]- j5 W# \. O& S
" A! {: |3 I$ y2 T8 ?
度分秒转换: + O/ F4 U0 F/ f( z
将度分秒单位数据转换为度单位数据 - w4 B2 _8 T3 F
度 = 度 + 分 / 60 + 秒 / 60 / 60 : H$ d$ [) @9 i3 b- b6 E) @; C" E
例如: 
经度 = 116°20’43” 
纬度 = 39°12’37” 
经度 = 116 + 20 / 60 + 43 / 60 / 60 = 116.34528° , E* o  O/ k9 [0 h5 w# B+ @
纬度 = 39 + 12 / 60 + 37 / 60 / 60 = 39.21028° 
0 x4 p7 W4 h$ g
其格式的经纬值先转换度,再采用上面的运算。, r" @

经过从新计算,石板坡长江大桥北桥头换算过来应该是这样表达:7 m4 q* V1 g7 ]4 U* Z  I
N29.552719°,E106.55823°
把这组数据输入GPS,哈哈哈哈哈,不偏不倚,正好在北桥头4 i% m* ]: R6 ]3 {& p2 l# o
回头把端午节的目的地的坐标重新计算了下输入GPS,嘿嘿,也正确!
这下开心啦

一直在做遥感图像处理的东西,多是一些数字图像处理的分类算法,忘了自己竟是学地学这块的,现在连基本的经纬线都忘了,真是惭愧!现补充如下,以备后用。

关于经纬度的相关定义:

经线:

经线也称子午线,是人类为度量方便而假设出来的辅助线,定义为地球表面连接南北两极的大圆线上的半圆弧。任两根经线的长度相等,相交于南北两极点。每一根经线都有其相对应的数值,称为经度。经线指示南北方向。

本初子午线 :

本初子午线又称“首子午线”或“零子午线”,是计算东西经度的起点,以经过英国伦敦东南格林尼治的经线为本初子午线,作为计算地理的起点和世界标准“时区”的起点。本初子午线以东为东经,以西为西经,全球经度测量均以本初子午线与赤道的交点E点作为经度原点。

子午线命名的由来:

某一天体视运动轨迹中,同一子午线上的各点该天体在上中天(午)与下中天(子)出现的时刻相同。

纬线:

纬线是人类为度量方便而假设出来的辅助线,定义为地球表面某点随地球自转所形成的轨迹。纬线平行于赤道,经线垂直于赤道,任何一根纬线都是圆形而且两两平行。纬线的长度是赤道的周长乘以纬线的纬度的余弦,所以赤道最长,离赤道越远的纬线,周长越短,到了两极就缩为0。纬线指示东西方向。

北回归线(23°26' 22" N)

太阳在北半球能够直射到的离赤道最远的位置,其纬度值为黄赤交角,是一条纬线,大约在北纬23度26分的地方。

赤道(0°N)

通过地球中心划一个与地轴成直角相交的平面,在地球表面相应出现一个和地球的极距离相等的假想圆圈。赤道的纬度是0°。是地球表面的点随地球自转产生的轨迹中周长最长的圆周线,赤道半径 6378.137Km ;两极半径 6359.752Km;平均半径 6371.012Km ;赤道周长 40075.7Km。如果把地球看做一个绝对的球体的话,赤道距离南北两极相等,是一个大圆。它把地球分为南北两半球,其以北是北半球,以南是南半球,是划分纬度的基线,是南北纬线的起点。

南回归线(23° 26' 22" S)

太对应于北回归线,阳在地球上的直射点在一年内到达的最南点所在的纬线。

经度:

     是地球上一个地点离一根被称为本初子午线的南北方向走线以东或以西的度数。它是通过某地的经线面与本初子午面所成的二面角,在本初子午线以东的经度叫东经,在本初子午线以西的叫西经。东经用“E”表示,西经用“W”表示。比如:E116.33533°,W116.33533°.经度的每一度被分为60角分,每一分被分为60秒。也可以用小数点位表示。有时西经也被写成负数,如:-116.33533°。

纬度

是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N;位于赤道以南的点的纬度称南纬,记为S。

纬度数值在0至30度之间的地区称为低纬度地区;纬度数值在30至60度之间的地区称为中纬度地区;纬度数值在60至90度之间的地区称为高纬度地区。赤道是0°纬线,北纬度的最大值为90°,即北极点;南纬度的最大值为90°,即南极点。

地面法线

垂直于某地参考椭球体表面的线。

经纬度坐标系统:

是经度与纬度的合称组成一个坐标系统。又称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。

一个经度和一个纬度一起确定地球上一个地点的精确位置。一个完整的图面地理坐标系统由一个完整的参考椭球体系和一个完整的投影体系组成。

天文地理坐标系统和大地坐标系统

由经线和纬线构成两组互相正交的曲线坐标网叫地理坐标网。由经纬度构成的地理坐标系统又叫地理坐标系。地理坐标分为天文地理坐标和大地地理坐标。天文地理坐标是用天文测量方法确定的,大地地理坐标是用大地测量方法确定的。我们在地球椭球面上所用的地理坐标系属于大地地理坐标系,简称大地坐标系。

经纬度网

大地坐标系是以以参考椭球面为基准面的坐标,地面点P的位置用大地经度L、大地纬度B和大地高H表示。当点在参考椭球面上时,仅用大地经度和大地纬度表示。虽然如此,但是,大地坐标系与经纬度网并不一致,大地坐标系以球面的形式描述了真实的地球坐标,而经纬度网则是在制图时,为满足平面作图的需要(即地图投影),参照一定的投影公式制作成平面地图,并在图上套上经纬线。常用作世界地图的投影有墨卡托投影、高尔投影、摩尔威特投影、等差分纬线多圆锥投影、格灵顿投影、桑森投影、乌尔马耶夫投影等。而横轴墨卡托投影即为高斯-克吕格投影,一般用于我国的地理制图。
 我国的高斯-克吕格投影体系

它是一种横轴、椭圆柱面、等角投影。其投影过程可简述如下:椭圆柱面与地球椭球在某一子午圈上相切,这条子午圈叫做投影的中央子午线,又称轴子午线,它也是高斯投影后的平面直角坐标系的纵轴(一般定义为x轴);地球的赤道面与椭圆柱面相交成一条直线,这条直线与中央子午线正交,它是平面直角坐标系的横轴(y轴);把椭圆柱面展开,就得出以(x,y)为坐标的平面直角坐标系。按一定经差将地球椭球面划分成若干投影带,这是高斯投影中限制长度变形的最有效方法。分带时既要控制长度变形使其不大于测图误差,又要使带数不致过多以减少换带计算工作,据此原则将地球椭球面沿子午线划分成经差相等的瓜瓣形地带,以便分带投影。通常按经差6度或3度分为六度带或三度带。六度带自0度子午线起每隔经差6度自西向东分带,带号依次编为第1、2…60带。三度带是在六度带的基础上分成的,它的中央子午线与六度带的中央子午线和分带子午线重合,即自1.5度子午线起每隔经差3度自西向东分带,带号依次编为三度带第 1、2…120带。我国的经度范围西起73°东至135°,可分成六度带十一个,各带中央经线依次为75°、81°、87°、……、117°、123°、129°、135°,或三度带二十二个。

经纬度格式

经纬度格式分为三种:度、度-分、度-份-秒

1.   ddd.ddddd °【度 . 度 格式】的十进制小数部分(5位)

2.   ddd°mm.mmm’ 【度 . 分 . 分 格式】的十进制小数部分(3位)

3.  ddd°mm’ss’’ 【度 . 分 . 秒 格式】

转换公式

度分转换: 
将度分单位数据转换为度单位数据 
度=度+分/60 
例如: 
经度 = 116°20.12’ 
纬度 = 39°12.34’ 
经度 = 116 + 20.12 / 60 = 116.33533° 
纬度 = 39 + 12.34 / 60 = 39.20567°

度分秒转换: 
将度分秒单位数据转换为度单位数据 
度 = 度 + 分 / 60 + 秒 / 60 / 60 
例如: 
经度 = 116°20’43” 
纬度 = 39°12’37” 
经度 = 116 + 20 / 60 + 43 / 60 / 60 = 116.34528° 
纬度 = 39 + 12 / 60 + 37 / 60 / 60 = 39.21028°

在实际的处理中,计算相应像元点的地理坐标:

GDAL数据集有两种模式描述栅格位置(用点/线坐标系)以及地理参考坐标系之间的关系:首要的也是最普遍的是使用仿射转换,另一种则是GCPs(多控制点定位方式)

仿射变换

1用GDAL获取四个角点的地理坐标

GDALDataset::::GetGeoTransform()

声明一个存储变量:

double        geoTransform[6];

geoTransform[0]是左上角像元的东坐标;

geoTransform[3]是左上角像元的北坐标;

geoTransform[1]是影像宽度上的分辨率;

geoTransform[5]是影像高度上的分辨率;

geoTransform[2]是旋转, 0表示上面为北方;

geoTransform[4]是旋转, 0表示上面为北方;

2相应的放射变换公式:

Xp = geoTransform [0] +Xpixel*geoTransform [1]+Yline*geoTransform [2];

Yp = geoTransform [3] + Xpixel*geoTransform [4] + YlineL*geoTransform [5];

其中Xpixel、YlineL分别地物表示单纯地影像上图像遍历时(x,y)坐标表示,点/线坐标系是从左上角(0,0)点到右下角,也就是坐标轴从左到右增长,从上到下增长的坐标系。

2 GCPs控制点坐标变换:

int nGCPs=poDataset->GetGCPCount();   //获得控制点数目

const GDAL_GCP* pGCPs = poDataset->GetGCPs(); //获得GCP控制点,是一个字段

double  *geoTransform  ;//与前面的仿射变换的相似
GDALGCPsToGeoTransform( nGCPs, pGCPs, geoTransform, TRUE ); //由GCPs获得仿射变换参数

int x,y;//任意点影像行列数

double xx,yy; //任意点影像对应的地理坐标

double ex[nGCPs];//不同控制点算出的地理坐标X
double ey[nGCPs];//不同控制点算出的地理坐标Y

double pRadio[nGCPs]; //任意点相对与控制点的权值

double total=0; //权值和

double sx=0; //pRadio[i]*ex[i]
double sy=0; //pRadio[i]*ey[i]

for(int num=0;num<nGCPs;num++)
   {
        double gX,gY,tX,tY;
        tX=pGCPs[num].dfGCPPixel; //GCP位置X
        tY=pGCPs[num].dfGCPLine;  //GCP位置Y
        gX=pGCPs[num].dfGCPX;     //地理位置X
        gY=pGCPs[num].dfGCPY;     //地理位置Y

pRadio[num]=1/(double)(sqrt((tX-x)*(tX-x)+(tY-y)*(tY-y)));
        total+=pRadio[num];

ex[num]=gX+(x-tX)*geoTransform[1];
        ey[num]=gY+(y-tY)*geoTransform[5];

sx+=pRadio[num]*ex[num];
        sy+=pRadio[num]*ey[num];
     }

xx=sx/total;

yy=sy/total;

对于遥感图像而言,如果想显示在屏幕上,由于图像过大或者屏幕的关系,常常做成金字塔影像,或者拉伸图像数据,使图像产生变形以此来满足显示的需求。

假如已经将经纬度转换成小数点位,即以度为单位,已知道屏幕的高(y)和宽(h),地理坐标区域的范围(maxLon,minLon,maxLat,minLat)..这里我们知道了这些已知的参数

我们可以算出每像素所代表的经度和纬度(有人称这个为比例因子):
        公式:scaleX = h/((maxLon-minLon)*3600)  ----------X轴上每像素代表的经度秒数;
        公式:scaleY = y/((maxLat-minLat)*3600)  -----------Y轴上每像素代表的纬度秒数;

算出该地理坐标区域中的任何一点(lon,lat)在屏幕上的坐标

公式:screenX = lon*3600/scaleX;  ---------屏幕坐标X轴坐标
公式:screenY = lat*3600/scaleY; ----------屏幕坐标Y轴坐标,

lon和lat为任意地点的地理坐标,前面的仿射变换已经算出

假如需要占满整个屏幕:

公式:minX = minLon*3600/scaleX;    区域左边置最左端
公式:minY = minLat*3600/scaleY;     区域上面置最上端

当地地理范围区域占满整个屏幕时,我们需要用到第三步计算出来的 screenX和screenY两个参数
该区域中的任何一点的公式如下:   
 公式:X = screenX - minX = (lon - minLon)*3600/scaleX;     
由于纬度的方向和屏幕Y轴是相反的, 
 公式:screenMaxLat = (maxLat - minLat)*3600/scaleY;
 公式:screenLat = (lat - minLat)*3600/scaleY;
公式:Y = screenMaxLat - screenLat = (maxLat - lat)*3600/scaleY;

度分 格式 转换 GPS 经纬度定义、经纬度格式、GDAL中地理坐标转换及地理坐标屏幕显示相关推荐

  1. 经纬度定义、经纬度格式、GDAL中地理坐标转换及地理坐标屏幕显示

    一直在做遥感图像处理的东西,多是一些数字图像处理的分类算法,忘了自己竟是学地学这块的,现在连基本的经纬线都忘了,真是惭愧!现补充如下,以备后用. 关于经纬度的相关定义: 经线: 经线也称子午线,是人类 ...

  2. mkv格式怎么解封?教你用格式转换的方法把mkv格式转换成avi

    mkv格式作为主流格式之一,虽然没有以前那么流行了,但是在下载视频作为素材的时候难免还会遇到mkv格式.而mkv格式是一种封装格式,很多播放器或pr等一些编辑软件是不能直接添加mkv格式的,因此我们常 ...

  3. ios html格式转换,如何使用HTML模版和iOS中的UIPrintPageRenderer来生成PDF文档

    如何使用HTML模版和iOS中的UIPrintPageRenderer来生成PDF文档 作者:GABRIEL THEODOROPOULOS,时间:2016/7/10 翻译:BigNerdCoding, ...

  4. java aud 转mp3_音频格式转换:微信语音aud格式转成wav格式

    近期遇到音频格式问题,下面就来记录一下,我暂时还没有找到直接从音频格式aud转换成wav的工具或者代码,所以我这里的转换是先把aud转换成mp3格式,然后再从mp3格式转换成aud格式.我是在linu ...

  5. 怎么把qlv格式转换成mp4添加到编辑软件中

    随着短视频不断的火爆越来越多人喜欢利用空余时间看一些短视频以打发琐碎的时间,而制作短视频往往是需要下载素材的,当我们通过各种途径下载到独家的qlv格式且不能添加到编辑软件时怎么办呢?此时我们就可以把q ...

  6. yolo图像检测数据集格式转换:xml 与 txt格式相互转换

    格式介绍 一图流介绍的比较详细,一般图像检测数据集格式为txt或者xml格式,在使用labelimg进行标注的时候,可以设置获得不同格式的数据集,以满足不同算法训练格式要求: 一般建议使用pascal ...

  7. 计算机无法播放qsv文件,怎么把电脑上的qsv格式转换成常用的mp4格式

    第一步:首先就是要打开能转换的视频转换器,并把首行功能栏中的功能选为视频转换功能,虽然默认的也是视频转换功能,但容易因为各种情况选择别的功能而忘记. 第二步:随后要做的就是根据多种添加方式选择其中一种 ...

  8. m4s格式转换mp3_闪电MP4/MP3格式转换器下载-闪电MP4/MP3格式转换器v3.8.8免费版

    闪电MP4/MP3格式转换器是一个功能强大的MP3/MP4视频转换软件,使用这款闪电MP3/mp4格式转换器可以实现MP3,WAV,CD,WMA,OGG,AAC,AC3,FLAC,APE等常用音频见的 ...

  9. python实现图片格式转换_python实现批量图片格式转换

    本文实例为大家分享了python实现批量格式转换的具体代码,供大家参考,具体内容如下 深度学习过程中总是绕不开数据集的制作,有时候实际图片格式或大小可能与需要关心的图片信息不一致,那么我们只能手动做好 ...

最新文章

  1. 【动态规划、计算几何】最优三角剖分
  2. Ubuntu中安装Pycharm
  3. 监控系统或者网站服务器的报警及复位,机房监控系统标准和常见故障
  4. 计算机2级模拟1答案,全国计算机2级MSOffice模拟考试1答案.doc
  5. HDU 2829 Lawrence
  6. ssis 派生列_具有多个表达式与多个转换的SSIS派生列
  7. clearTaskOnLaunch的作用,自己总结,求关注
  8. nvidia命令不可用linux,linux – 如何从命令行获取nvidia驱动程序版本?
  9. 用计算机打李白的歌,抖音笨李白是什么歌 歌词中带有笨李白原版歌曲名字-游侠手游...
  10. Flash动画制作实例教程
  11. 资源分享 | 敬伟 PS 教程 ABCD 四套全集
  12. 数据结构Data Structure in C++ 胡学钢 全书梳理(备忘自用 已完结)
  13. 手把手教你架构3D引擎高级篇系列一
  14. 我的世界服务器如何修复报错,我的世界18w30a发布 修复1.13众多BUG
  15. Java获取图片的拍摄地理位置
  16. 秀米svg点击显示另一张图_秀米说:SVG和图文排版
  17. 小码农也有大梦想,技术详细介绍
  18. 李宏毅机器学习之Deep Learning简介
  19. 经济基础知识(初级)【5】
  20. FAIL : No keyword with name '/dev/mapper/vg1-lv1' found.(解决方法)

热门文章

  1. 封魔录listview的屏幕自适应
  2. 上海交大计算机专业的优势,计算机专业高校实力排名,清北稳居前二,上海交大上榜...
  3. Java学习笔记(No.23)
  4. 【附源码】计算机毕业设计SSM校园二手物品交易系统
  5. wifi共享精灵 设置热点后 电脑上不了网
  6. Android高手笔记 - 启动优化
  7. 算法原理稳如狗,工程落地慌得很!AI炼丹炉实践指南来啦~
  8. qnap php.ini 修改,QNAP NAS 进阶文件夹权限管理设定
  9. 调用Web Service实现天气预报
  10. nyoj 7 街区最短路径问题 暴力枚举