/**
* 地图坐标转换 google,baidu,gps
* @author lw
* @Time 2015年4月16日18:19:16
*
* */
public
class
CoordinateConversion {
private
static
final
double
x_pi =
3.14159265358979324
*
3000.0
/
180.0
;
private
static
final
double
pi =
3.14159265358979324
;
private
static
final
double
a =
6378245.0
;
private
static
final
double
ee =
0.00669342162296594323
;
/**
* gg_lat 纬度
* gg_lon 经度
* GCJ-02转换BD-09
* Google地图经纬度转百度地图经纬度
* */
public
static
Point google_bd_encrypt(
double
gg_lat,
double
gg_lon){
Point point=
new
Point();
double
x = gg_lon, y = gg_lat;
double
z = Math.sqrt(x * x + y * y) +
0.00002
* Math.sin(y * x_pi);
double
theta = Math.atan2(y, x) +
0.000003
* Math.cos(x * x_pi);
double
bd_lon = z * Math.cos(theta) +
0.0065
;
double
bd_lat = z * Math.sin(theta) +
0.006
;
point.setLat(bd_lat);
point.setLng(bd_lon);
return
point;
}
/**
* wgLat 纬度
* wgLon 经度
* BD-09转换GCJ-02
* 百度转google
* */
public
static
Point bd_google_encrypt(
double
bd_lat,
double
bd_lon){
Point point=
new
Point();
double
x = bd_lon -
0.0065
, y = bd_lat -
0.006
;
double
z = Math.sqrt(x * x + y * y) -
0.00002
* Math.sin(y * x_pi);
double
theta =Math.atan2(y, x) -
0.000003
* Math.cos(x * x_pi);
double
gg_lon = z * Math.cos(theta);
double
gg_lat = z * Math.sin(theta);
point.setLat(gg_lat);
point.setLng(gg_lon);
return
point;
}
/**
* wgLat 纬度
* wgLon 经度
* WGS-84 到 GCJ-02 的转换(即 GPS 加偏)
* */
public
static
Point wgs_gcj_encrypts(
double
wgLat,
double
wgLon) {
Point point=
new
Point();
if
(outOfChina(wgLat, wgLon)) {
point.setLat(wgLat);
point.setLng(wgLon);
return
point;
}
double
dLat = transformLat(wgLon -
105.0
, wgLat -
35.0
);
double
dLon = transformLon(wgLon -
105.0
, wgLat -
35.0
);
double
radLat = wgLat /
180.0
* pi;
double
magic = Math.sin(radLat);
magic =
1
- ee * magic * magic;
double
sqrtMagic = Math.sqrt(magic);
dLat = (dLat *
180.0
) / ((a * (
1
- ee)) / (magic * sqrtMagic) * pi);
dLon = (dLon *
180.0
) / (a / sqrtMagic * Math.cos(radLat) * pi);
double
lat = wgLat + dLat;
double
lon = wgLon + dLon;
point.setLat(lat);
point.setLng(lon);
return
point;
}
非本人原创
原文http://my.oschina.net/Thinkeryjgfn/blog/402565?fromerr=iCgT0WCK