java 火星坐标转wgs84_火星坐标系与WGS84坐标系转换
//定义一些常量
var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
var PI = 3.1415926535897932384626;
var a = 6378245.0;
var ee = 0.00669342162296594323;
/**
* * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换 * 即 百度 转 谷歌、高德 *
*
* @param bd_lon *
* @param bd_lat *
* @returns {*[]}
*/
function bd09togcj02(bd_lon, bd_lat) {
var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
var x = bd_lon - 0.0065;
var y = bd_lat - 0.006;
var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
var gg_lng = z * Math.cos(theta);
var gg_lat = z * Math.sin(theta);
return [ gg_lng, gg_lat ]
}
/**
* 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换 即谷歌、高德 转 百度
*
* @param lng
* @param lat
* @returns {*[]}
*/
function gcj02tobd09(lng, lat) {
var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
var bd_lng = z * Math.cos(theta) + 0.0065;
var bd_lat = z * Math.sin(theta) + 0.006;
return [ bd_lng, bd_lat ]
}
/**
* WGS84转GCj02
*
* @param lng
* @param lat
* @returns {*[]}
*/
function wgs84togcj02(lng, lat) {
if (out_of_china(lng, lat)) {
return [ lng, lat ]
} else {
var dlat = transformlat(lng - 105.0, lat - 35.0);
var dlng = transformlng(lng - 105.0, lat - 35.0);
var radlat = lat / 180.0 * PI;
var magic = Math.sin(radlat);
magic = 1 - ee * magic * magic;
var sqrtmagic = Math.sqrt(magic);
dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
var mglat = lat + dlat;
var mglng = lng + dlng;
return [ mglng, mglat ]
}
}
/**
* GCJ02 转换为 WGS84
*
* @param lng
* @param lat
* @returns {*[]}
*/
function gcj02towgs84(lng, lat) {
if (out_of_china(lng, lat)) {
return [ lng, lat ]
} else {
var dlat = transformlat(lng - 105.0, lat - 35.0);
var dlng = transformlng(lng - 105.0, lat - 35.0);
var radlat = lat / 180.0 * PI;
var magic = Math.sin(radlat);
magic = 1 - ee * magic * magic;
var sqrtmagic = Math.sqrt(magic);
dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
mglat = lat + dlat;
mglng = lng + dlng;
return [ lng * 2 - mglng, lat * 2 - mglat ]
}
}
function transformlat(lng, lat) {
var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng
* lat + 0.2 * Math.sqrt(Math.abs(lng));
ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
return ret
}
function transformlng(lng, lat) {
var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1
* Math.sqrt(Math.abs(lng));
ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0
* PI)) * 2.0 / 3.0;
return ret
}
/**
* 判断是否在国内,不在国内则不做偏移
*
* @param lng
* @param lat
* @returns {boolean}
*/
function out_of_china(lng, lat) {
return (lng < 72.004 || lng > 137.8347)
|| ((lat < 0.8293 || lat > 55.8271) || false);
}
//使用示例
//标准gps坐标转火星坐标
var lng_lat_1 = wgs84togcj02(113.912743,22.497629);
//alert('火星坐标:'+lng_lat_1);
java 火星坐标转wgs84_火星坐标系与WGS84坐标系转换相关推荐
- 百度坐标(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 ...
- gps84转换gcj02公式_百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换...
//定义一些常量 var x_PI = 3.14159265358979324 * 3000.0 / 180.0; var PI = 3.1415926535897932384626; var a = ...
- 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系互转
为什么写这个模块 随着移动互联网的兴起,几乎每一个app都会去收集用户位置,如果恰好你在处理与地理定位相关的代码,并且不了解地理坐标系的话,肯定要被我大天朝各种坐标系搞晕.写这个模块的目的也是因为项目 ...
- GCJ-02火星坐标系、BD-09百度坐标系和WGS-84坐标系转换
WGS-84:GPS坐标系 GCJ-02:火星坐标系,国测局02年发布的坐标体系,高德,腾讯等使用. BD-09:百度坐标系 GCJ-02火星坐标系和WGS-84坐标系转换关系 var pi = 3. ...
- 基于Postgresql和PostGIS实现火星坐标系、百度坐标系、WGS84坐标系、CGCS2000坐标系互转
背景 最近有一个需求,需要将WGS84转成火星坐标系.个人觉得在代码中逐个点坐标进行转换,太麻烦,而且效率低.PostGIS的st_transform虽然可以进行坐标转换,但是不支持国内这些坐标系.最 ...
- CGCS2000坐标系和WGS84坐标系的区别与联系
01 概述 由于历史原因,业内普遍对WGS84坐标系存在一定程度的误解,诸多文献对WGS84坐标系的解释也比较含糊,给测绘.导航.遥感.地信等工作带来一定困扰.本文重点对CGCS2000坐标系与WGS ...
- 【WebGIS】JavaScript地理坐标的转换:GCJ-02火星坐标系和WGS-84坐标系转换关系
目录 说明 JS代码 演示 说明 最近需要将Web端openlayer画出的点面的地理信息放到微信小程序的Map上展示,使用微信小程序的腾讯地图功能,发现使用了GCJ-02火星坐标系,与我Web端使用 ...
- 关于J2000.0坐标系与WGS84坐标系的理解
目录 一.基础知识 1.1 岁差 1.2 章动 1.3 极移 1.4 基础知识小结 二.坐标系 2.1 J2000.0坐标系 2.2 WGS84坐标系 一.基础知识 在理解坐标系之前需要对地球岁差(进 ...
- 百度坐标系与WGS84坐标系互转
*百度坐标系(BD09)与火星坐标系(GCJ-02)的转换*即 百度 转 高德 .谷歌*/var bd09togcj02 =function bd09togcj02(bd_lon,bd_lat){va ...
最新文章
- yii2.0使用ueditior完成上传单张,多张图片,上传视频等操作
- 贴一段数组动态扩容的代码
- java导出csv文件使用Excel打开乱码问题
- Linux驱动学习笔记之并发控制
- 创建一个dynamics CRM workflow (二) - Build in Workflows
- MediatR 知多少
- 这五部关于宇宙的神级纪录片,带你探索未知的外太空世界
- 拓端tecdat|python图工具中基于随机块模型动态网络社团检测网络图
- 行政边界矢量地图—县级
- 基于稀疏表示的图像超分辨
- 有趣有用的PCA——PCA压缩图片
- ubuntu如何安装rpm
- 台式计算机diy,DIY组装台式电脑经验分享学习篇
- 32位系统和64位区别
- 美联航客机门被冻坏无法起飞 乘客困机上约16小时
- linux无法运行sssverify,Synopsys Design Compiler在fedora Core 9下面的安装
- html5如何快速选择工具,PS快速选择工具怎么使用?快捷键是什么?
- 推荐十款推荐十款超赞的Googleamp;nbs…
- Day2作业:购物商城
- 学java能打开大脑思维_脑科学:一句“去你的吧”,就可以判断出你是左脑型思维还是右脑型思维!...