1
/*
*
2
* 各地图API坐标系统比较与转换;
3
* WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,
4
* 谷歌地图采用的是WGS84地理坐标系(中国范围除外);
5
* GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
6
* 谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系; BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系;
7
* 搜狗坐标系、图吧坐标系等,估计也是在GCJ02基础上加密而成的。 chenhua
8
*/
9
public
class PositionUtil {
10
11
public
static final String BAIDU_LBS_TYPE =
"
bd09ll
";
12
13
public
static
double pi =
3.1415926535897932384626;
14
public
static
double a =
6378245.0;
15
public
static
double ee =
0.00669342162296594323;
16
17
/*
*
18
* 84 to 火星坐标系 (GCJ-02) World Geodetic System ==> Mars Geodetic System
19
*
20
* @param lat
21
* @param lon
22
* @return
23
*/
24
public
static Gps gps84_To_Gcj02(
double lat,
double lon) {
25
if (outOfChina(lat, lon)) {
26
return
null;
27 }
28
double dLat = transformLat(lon -
105.0, lat -
35.0);
29
double dLon = transformLon(lon -
105.0, lat -
35.0);
30
double radLat = lat /
180.0 * pi;
31
double magic = Math.sin(radLat);