地图开发 火星坐标(GCJ-02)和百度坐标(BD-09)互相转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了地图开发 火星坐标(GCJ-02)和百度坐标(BD-09)互相转换相关的知识,希望对你有一定的参考价值。
■ 背景- 国际坐标系 WGS-84:地心坐标系,国际通用。应用:Googole Map
- 火星坐标系 GCJ-02:由中国×××(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。应用:高德地图
- 百度坐标系 BD-09:在GCJ-02的基础上二次偏移。应用:百度地图
■ GCJ-02和BD-09互相转换 (js)
// 高德地图坐标系(火星坐标GCJ-02) -> 百度地图坐标系(百度坐标BD-09)
// 参数形式为"lng,lat"
// 返回字符串"lng,lat"
function gcj2bdString(value, mapType) {
if (mapType == BAIDU) {
var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
var ll = value.split(",");
var x = ll[0], y = ll[1];
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);
return (z * Math.cos(theta) + 0.0065) + ‘,‘ + (z * Math.sin(theta) + 0.006);
} else if (mapType == GAODE) {
return value;
}
}
// 百度地图坐标系(百度坐标BD-09) -> 高德地图坐标系(火星坐标GCJ-02)
// 参数形式为"lng,lat"
// 返回字符串"lng,lat"
function bd2gcjString(value, mapType) {
if (mapType == BAIDU) {
var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
var ll = value.split(",");
var x = ll[0] - 0.0065, y = ll[1] - 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);
return (z * Math.cos(theta)) + ‘,‘ + (z * Math.sin(theta));
} else if (mapType == GAODE) {
return value;
}
}
以上是关于地图开发 火星坐标(GCJ-02)和百度坐标(BD-09)互相转换的主要内容,如果未能解决你的问题,请参考以下文章
WGS84(GPS)火星坐标系(GCJ02)百度地图(BD09)坐标系转换案例教程(附转换工具下载)
WGS84(GPS)火星坐标系(GCJ02)百度地图(BD09)坐标系转换案例教程(附转换工具下载)
WGS84(GPS)火星坐标系(GCJ02)百度地图(BD09)坐标系转换案例教程(附转换工具下载)
[转]百度坐标(BD09)国测局坐标(火星坐标,GCJ02)和WGS84坐标系之间的转换