WGS84坐标系转ENU坐标
1、第一步将WGS84坐标系转为地心坐标系
public static double[] wgs84ToEcef(double lat, double lon, double h) {double a = 6378137;double b = 6356752.3142;double f = (a - b) / a;double e_sq = f * (2 - f);double lamb = Math.toRadians(lat);double phi = Math.toRadians(lon);double s = Math.sin(lamb);double N = a / Math.sqrt(1 - e_sq * s * s);double sin_lambda = Math.sin(lamb);double cos_lambda = Math.cos(lamb);double sin_phi = Math.sin(phi);double cos_phi = Math.cos(phi);double x = (h + N) * cos_lambda * cos_phi;double y = (h + N) * cos_lambda * sin_phi;double z = (h + (1 - e_sq) * N) * sin_lambda;return new double[]{x,y,z};}
2、第二步输入站点经纬度进行转换
public static double[] ecefToEnu(double x, double y, double z, double lat, double lng, double height) {double a = 6378137;double b = 6356752.3142;double f = (a - b) / a;double e_sq = f * (2 - f);double lamb = Math.toRadians(lat);double phi = Math.toRadians(lng);double s = Math.sin(lamb);double N = a / Math.sqrt(1 - e_sq * s * s);double sin_lambda = Math.sin(lamb);double cos_lambda = Math.cos(lamb);double sin_phi = Math.sin(phi);double cos_phi = Math.cos(phi);double x0 = (height + N) * cos_lambda * cos_phi;double y0 = (height + N) * cos_lambda * sin_phi;double z0 = (height + (1 - e_sq) * N) * sin_lambda;double xd = x - x0;double yd = y - y0;double zd = z - z0;double t = -cos_phi * xd - sin_phi * yd;double xEast = -sin_phi * xd + cos_phi * yd;double yNorth = t * sin_lambda + cos_lambda * zd;double zUp = cos_lambda * cos_phi * xd + cos_lambda * sin_phi * yd + sin_lambda * zd;return new double[] { xEast, yNorth, zUp };}
3、测试代码
public static void main(String[] args) {double[] arr1 = wgs84ToEcef(30.7335905, 103.968191, 493.080);//此处经纬度是需要比对的偏移经纬度ecefToEnu(arr1[0],arr1[1], arr1[2],30.7335905, 103.968191, 493.080);//此处经纬度是站点经纬度}
WGS84坐标系转ENU坐标相关推荐
- 高德地图GCJ-02火星坐标系与GPS的WGS-84坐标系转换公式(Java)
在国内,我们使用高德地图所获取的经纬度由于保密原因实际上经过了加偏处理 所以需要从国测局(GCJ02)坐标转换成基于WGS-84坐标系的GPS坐标 可在Android项目中直接使用,已经经过本人检验, ...
- Geography爱好者 QGIS WGS84转其它坐标系并计算坐标
需求: 将带有经度.纬度(WGS84坐标系)坐标的文本(*.txt)转换成指定投影坐标系的shp文件并计算x,y坐标. 环境和工具: WIN10.QGIS2.16.带有经纬度坐标的文本.格式如下图: ...
- 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系互转
为什么写这个模块 随着移动互联网的兴起,几乎每一个app都会去收集用户位置,如果恰好你在处理与地理定位相关的代码,并且不了解地理坐标系的话,肯定要被我大天朝各种坐标系搞晕.写这个模块的目的也是因为项目 ...
- 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的相互转换
/*** Created by Wandergis on 2015/7/8.* 提供了百度坐标(BD09).国测局坐标(火星坐标,GCJ02).和WGS84坐标系之间的转换*///定义一些常量 var ...
- 前端javascript百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
/*** * 提供了百度坐标(BD09).国测局坐标(火星坐标,GCJ02).和WGS84坐标系之间的转换*/ // UMD魔法代码 // if the module has no dependenc ...
- 【ArcGIS】使用ArcMap进行北京1954-120E坐标转WGS84坐标系
背景 在进行青岛地市GIS数据迁移,涉及坐标转换,经过几天摸索终于找到迁移方法 投影坐标系 北京1954-120E坐标 对应为高斯-克吕格投影 300000 3000001 0 0(青岛本地坐标) 增 ...
- CAD输出的局部平面坐标数据配准转换到WGS84坐标系
局部平面坐标 平移纠正到常用平面坐标系下的坐标 转换后的地理坐标 采用两 ...
- GCJ-02火星坐标系、BD-09百度坐标系和WGS-84坐标系转换
WGS-84:GPS坐标系 GCJ-02:火星坐标系,国测局02年发布的坐标体系,高德,腾讯等使用. BD-09:百度坐标系 GCJ-02火星坐标系和WGS-84坐标系转换关系 var pi = 3. ...
- python实现WGS-84坐标系下大地坐标和空间直角坐标系互转xyz2blh、blh2xyz,xyz2neu
WGS-84坐标系下大地坐标blh和空间直角坐标系xyz互转,以及转站心坐标系neu # -*- coding: utf-8 -*- """ Created on Tue ...
最新文章
- javascript_治愈JavaScript疲劳的研究计划
- myeclipse 清理项目缓存的几大步骤
- ARM Cortex Debug Port Access Port DP AP JTAG-DP SW-DP SWJ-DP JTAG-AP MEM-AP
- 暴力关闭Windows defender
- 创建性设计模式之2--建造者模式
- C语言基础知识之基本数据类型相关的总结
- 离职盗取代码、倒卖获利800万,北京西二旗程序员被逮捕
- android webview下载附件几种方法
- uni-app 创建新页面和页面的配置
- iphone和iPad开发的区别
- 三端稳压管怎么接线及方法说明
- 数学建模技巧总结(一)
- 每天一道Java编程01-厚度为0.0001米的纸折叠多少次可以折成珠穆朗玛峰8848米的高度?
- 【C】 求3个正整数的最小公倍数
- 前后台端分离 跨域SESSION 失效问题
- 15个值得推荐的个人提升方法
- Java项目毕业设计:交流互动论坛信息网站(java+springboot+vue+mysql)
- 【SpringBoot】SpringBoot简介
- 并发编程 定时线程池ScheduledThreadPoolExecutor学习总结
- 动态链接库 (DLL)
热门文章
- 2020最新SpringMVC教程【IDEA版】-springmvc从入门到精通
- 遗传算法程序 matlab(转)
- PCBA电源短路分析方法
- 利用Spring Hibernate注解packagesToScan的简化自动扫描方式
- Gamma校正原理及实现(一)
- windchill服务器源文件,Windchill基础培训PLM系统.ppt
- BIM在设计、施工和运维的细分应用点(中英文对照)
- Vue flask前后端分离解决跨域
- appium python 抓包_利用appium自动控制移动设备并抓取数据
- Java的Calendar类怎么用