各地图API坐标系统比较
简单记录一下各家坐标系
- WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,谷歌地图采用的是WGS84地理坐标系(中国范围除外);
- GCJ02坐标系:即火星坐标系,由WGS84坐标系经加密后的坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统,并要求在中国使用的地图产品使用的都必须是加密后的坐标。如高德、腾讯、谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系;
- BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系,官方解释是为了进一步保护用户隐私;
- 搜狗坐标系、图吧坐标系等,估计也是在GCJ02基础上加密而成的。
计算两点距离 java
private static final double EARTH_RADIUS = 6378.137;
public static double calculateDistance(
double longitude1, double latitude1, double longitude2, double latitude2) {
double radLat1 = rad(latitude1);
double radLat2 = rad(latitude2);
double diffLat = radLat1 - radLat2;
double diffLon = rad(longitude2) - rad(longitude1);
double s =
2
* Math.asin(
Math.sqrt(
Math.pow(Math.sin(diffLat / 2), 2)
+ Math.cos(radLat1)
* Math.cos(radLat2)
* Math.pow(Math.sin(diffLon / 2), 2)));
s = s * EARTH_RADIUS * 1000;
return s;
}
private static double rad(double d) {
return d * Math.PI / 180.0;
}