google 地图 百度地图坐标互转

/**

 * 地图坐标转换 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

时间: 2024-10-11 10:27:05

google 地图 百度地图坐标互转的相关文章

Google地图百度地图GPS经纬度偏移转换(JAVA)

不多说,直接代码,Java版 主要就是Google地图,百度地图,GPS经纬度偏移转换 GCJ-02转换BD-09,Google地图经纬度转百度地图经纬度 BD-09转换GCJ-02,百度转google WGS-84 到 GCJ-02 的转换(即 GPS 加偏) /** * 用于构造地图中的坐标点 * @author lw * **/ public class Point { private double lat;// 纬度 private double lng;// 经度 public Poi

高德地图百度地图导航坐标转换

项目中的定位商家服务搜索用的是高德地图,毕竟高德在地图这块做的比百度好(个人认为).这里吐槽下百度的开发平台,上面开发文档及案例写的真不好,想找某个问题点很难找到和定位,希望百度改善下. 高德转百度(火星坐标gcj02ll–>百度坐标bd09ll) private double[] gaoDeToBaidu(double gd_lon, double gd_lat) { double[] bd_lat_lon = new double[2]; double PI = 3.141592653589

在网页中插入百度地图(实例)

步骤 1 2 3 如何在网页中插入百度地图呢? 2.切换城市,搜索需标注位置.(如下图 方法/步骤 1.进入:http://api.map.baidu.com/lbsapi/creatmap/(创建地图-百度地图API所见即所得工具,百度官方地址,大家放心使用) 切换城市,搜索需标注位置.(如下图:) 设置地图:大家可以对网站显示地图的宽高进行设置,其余选项不动. 添加标注:点击第一个图标后,在右侧找到自己的位置,单击鼠标左键可定位.标记图标处可更换图标形状,名称和备注填入位置相关信息.(如下图

百度地图API自定义地图

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

Android studio 百度地图开发(5)查询周边服务(加油站)

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 百度地图应用(1):Android studio 百度地图开发(1)配置工程.显示地图 百度地图应用(2):Android studio 百度地图开发(2)地图定位 百度地图应用(3):Android studio 百度地图开发(3)地图导航 百度地图应用(4):Android studio 百度地图开发(4)触摸选点

在网页中加入百度地图

一.打开的图生成器 http://api.map.baidu.com/lbsapi/creatmap/ 二.创建地图 1.定位中心点,默认为北京,点击切换,输入公司的具体所在城市和具体地址.这个时候,地图会切换到该地点范围内. 2.设置地图,这一点基本上不用管,只用适当的设置下宽度和高度即可. 3.添加标注,其实网站建设者未必知道该企业的准确位置,往往不知道该标在哪.这时候,我们可以打开http://map.baidu.com/ ,查询到详细坐标,标注上去.这个标记图标是可以换的,根据自己喜欢来

在自己的网页中嵌入百度地图

最近项目需要在网页中嵌入地图,于是在这里记录下网页嵌入百度地图和使用百度地图api自定义地图的步骤,需要的朋友也可以参考下 首先进入http://api.map.baidu.com/lbsapi/creatmap/,搜索自己想要显示的经纬度,即为定义的中心点坐标 其余的在代码中有注释,可以根据自己需要进行更改 <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conte

Android studio 百度地图开发(6)Marker绑定事件、计算两点距离

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 百度地图应用(1):Android studio 百度地图开发(1)配置工程.显示地图 百度地图应用(2):Android studio 百度地图开发(2)地图定位 百度地图应用(3):Android studio 百度地图开发(3)地图导航 百度地图应用(4):Android studio 百度地图开发(4)触摸选点

3.31课&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;插入百度地图、视频、音频

1.插入地图: 从网上搜索百度地图生成器http://api.map.baidu.com/lbsapi/creatmap/index.html 按步骤一步一步来,复制代码到DW软件即可. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmln