经纬度及其与坐标系的转换

经纬度及其与坐标系的转换本文介绍了经纬度的概念 包括经度和纬度的定义 以及它们与地理坐标的关联

大家好,欢迎来到IT知识分享网。

参考文献:每日一词——经纬度(longitude and latitude)_gis0的博客-CSDN博客_longitude和latitude

一、经纬度的概念(longitude and latitude)

海拔为0米的地球半径为6371km

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

经纬度及其与坐标系的转换

1.1 经度

 经度是指通过某地的经线面本初子午面所成的二面角。在本初子午线以东的经度叫东经在本初子午线以西的叫西经。东经用“E”表示,西经用“W”表示。

1884年国际本初子午线大会格林尼治子午线正式定为经度的起点东经180°即西经180°约等同于国际换日线,国际换日线的两边,日期相差一日。

东经正数西经为负数

1.2 纬度

纬度是指过椭球面上某点作法线,该点法线赤道平面线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N;位于赤道以南的点的纬度称南纬,记为S。

北纬正数南纬负数

1.3 基本数量级

经纬度每差1度,距离大约差111km

经纬度每差1分,距离大约差1.85km

经纬度每差1秒,距离大约差0.031km

1.4 卫星三角测距怎么生成经纬度?

参考文献:

[1]张翠芳. GPS卫星定位算法设计与验证[D]. 电子科技大学, 2011.

[2]Bancroft, S. An Algebraic Solution of the GPS Equations[J]. IEEE Transactions on Aerospace & Electronic Systems, 1985, AES-21(1):56-59.

GPS卫星的位置由地面监控站测定后编成电文注入到卫星内,然后由卫星发布广播星历。对于用户而言,卫星的位置根据卫星广播的导航电文解算而得出。

步骤1:通过GPS卫星星历解算卫星在地心地固坐标系(WGS-84坐标系)中的位置;

步骤2:通过GPS卫星星历计算卫星速度;

步骤3:最小二乘法计算接收机在地心地固坐标系(WGS-84坐标系)中位置;

步骤4:计算接收机的速度;

步骤5:转换为经纬度。

二、常见地理坐标系

参考文献:CGJ02、BD09、西安80、北京54、CGCS2000常用坐标系详解_mrib的博客-CSDN博客_cgcs2000坐标系

2.1 WGS-84坐标系

WGS-84坐标系_EagleLY5894的博客-CSDN博客_wgs84坐标系

WGS-84坐标系(World Geodetic System一1984 Coordinate System)是美国国防部建立的一种地心地固坐标系,全球卫星定位系统GPS是基于WGS-84坐标系的。
WGS-84坐标系原点是地球的质心,空间直角坐标系的Z轴指向BIH(1984.0)定义的地极(CTP)方向,即国际协议原点CIO,它由IAU和IUGG共同推荐。X轴指向BIH定义的零度子午面和CTP赤道的交点,Y轴和Z、X轴构成右手坐标系

                                        经纬度及其与坐标系的转换
WGS-84建立的地球模型是一个标准椭球

                                                      经纬度及其与坐标系的转换

 其中:地球半长轴:a ≡ .0 m ;地球短半轴:b = m 。

三、代码:经纬度和WGS-84坐标系互相转换(c++语言版)

在线经纬度转换工具_经纬度转度分秒格式_度分秒转经纬度格式 – 一起看地图

GPS经纬度转84坐标系_telnetipc的博客-CSDN博客_经纬度转换为wgs84坐标系

 / * WGS84转地心坐标系 * 经纬度单位:度;高度单位:米 / public static double[] WGS84toECEF(double latitude, double longitude, double height) { double X; double Y; double Z; double a = .0;%单位m double b = .;%单位m double E = (a * a - b * b) / (a * a); double COSLAT = Math.cos(latitude * Math.PI / 180); double SINLAT = Math.sin(latitude * Math.PI / 180); double COSLONG = Math.cos(longitude * Math.PI / 180); double SINLONG = Math.sin(longitude * Math.PI / 180); double N = a / (Math.sqrt(1 - E * SINLAT * SINLAT)); double NH = N + height; X = NH * COSLAT * COSLONG; Y = NH * COSLAT * SINLONG; Z = (b * b * N / (a * a) + height) * SINLAT; return new double[] { X, Y, Z }; } / * 地心坐标系转WGS84 */ public static String ECEFtoWGS84(double x, double y, double z){ double a, b, c, d; double Longitude;// 经度 double Latitude;// 纬度 double Altitude;// 海拔高度 double p, q; double N; a = .0; b = .; c = Math.sqrt(((a * a) - (b * b)) / (a * a)); d = Math.sqrt(((a * a) - (b * b)) / (b * b)); p = Math.sqrt((x * x) + (y * y)); q = Math.atan2((z * a), (p * b)); Longitude = Math.atan2(y, x); Latitude = Math.atan2((z + (d * d) * b * Math.pow(Math.sin(q), 3)), (p - (c * c) * a * Math.pow(Math.cos(q), 3))); N = a / Math.sqrt(1 - ((c * c) * Math.pow(Math.sin(Latitude), 2))); Altitude = (p / Math.cos(Latitude)) - N; Longitude = Longitude * 180.0 / Math.PI; Latitude = Latitude * 180.0 / Math.PI; return Longitude + "," + Latitude + "," + Altitude; } 

四、代码:经纬度和WGS-84坐标系互相转换(Matlab语言版)

%% 经纬度转WGS84直角坐标系 % 东经正数,西经为负数 % 北纬为正数,南纬为负数 % 输入参数1:纬度;输入参数2:经度;输入参数3:高度 % 经纬度单位:度;高度单位:米 function [x,y,z]=LL2WGS84(latitude,longitude,height) a = .0;%单位m b = .;%单位m E = (a * a - b * b) / (a * a); COSLAT = cos(latitude * pi / 180); SINLAT = sin(latitude * pi / 180); COSLONG = cos(longitude * pi / 180); SINLONG = sin(longitude * pi / 180); N = a / (sqrt(1 - E * SINLAT * SINLAT)); NH = N + height; x = NH * COSLAT * COSLONG; y = NH * COSLAT * SINLONG; z = (b * b * N / (a * a) + height) * SINLAT; end
%% WGS84直角坐标系转经纬度 % 东经正数,西经为负数 % 北纬为正数,南纬为负数 % 输入参数1:纬度;输入参数2:经度;输入参数3:高度 % 经纬度单位:度;高度单位:米 function [latitude,longitude,height]=WGS842LL(x,y,z) a = .0; b = .; c = sqrt(((a * a) - (b * b)) / (a * a)); d = sqrt(((a * a) - (b * b)) / (b * b)); p = sqrt((x * x) + (y * y)); q = atan((z * a)/ (p * b)); longitude = atan(y/x); latitude = atan((z + (d * d) * b * sin(q)^3)/(p - (c * c) * a * cos(q)^3)); N = a / sqrt(1 - ((c * c) * sin(latitude)^2)); height = (p / cos(latitude)) - N; longitude = longitude * 180.0 / pi; latitude = latitude * 180.0 / pi; end 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/138920.html

(0)
上一篇 2024-11-24 09:33
下一篇 2024-11-24 09:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信