腾讯百度之间地图经纬度的转换

  1. 需求来源

在小程序,或者在软件开发中会有这样的需求,需要请求某个地图的接口,或者两个的接口都需要调用,但是两个地图所展示的同一个地方的经纬度会有所差异,这个时候就需要进行经纬度的转换了。

  1. 经纬度的提取

  • 腾讯地图:百度找到腾讯地图-->左上角的地图API-->开发文档-->工具-->坐标拾取器

  • 百度地图:百度找到百度地图-->最下面有一个地图开放平台-->开发文档-->开发者工具-->坐标拾取器

  1. 代码(直接写的静态方法,可以直接调用)

详细参考里面的参数说明:

public class LongitudeAndLatitude {

    /**
     * 坐标转换,腾讯地图转换成百度地图坐标
     * @param lat1 腾讯纬度
     * @param lon1 腾讯经度
     * @return 返回结果:经度,纬度
     */
    public static String map_tx2bd(String lat1, String lon1) {
        double lat=Double.parseDouble(lat1) ;
        double lon=Double.parseDouble(lon1) ;
        double bd_lat;
        double bd_lon;
        double x_pi = 3.14159265358979324;
        double x = lon, y = 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);
        bd_lon = z * Math.cos(theta) + 0.0065;
        bd_lat = z * Math.sin(theta) + 0.006;
        System.out.println("bd_lat:" + bd_lat);
        System.out.println("bd_lon:" + bd_lon);
        return bd_lat + "," + bd_lon;
    }

    /**
     *坐标转换:百度地图转为腾讯地图坐标
     * @param lat1:百度纬度
     * @param lon1:百度经度
     * @return
     */
    public static String BdMapToTxMap(String lat1, String lon1) {
        double lat=Double.parseDouble(lat1) ;
        double lon=Double.parseDouble(lon1) ;
        double tx_lat;
        double tx_lon;
        double x_pi = (3.14159265358979324 * 3000.0) / 180.0;
        double x = lon - 0.0065;
        double y = 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);
        tx_lon = z * Math.cos(theta);
        tx_lat = z * Math.sin(theta);
        System.out.println("tx_lat:" + tx_lat);
        System.out.println("tx_lon:" + tx_lon);
        return tx_lat + "," + tx_lon;
    }
}
  1. 拓展

  • WGS-84:是国际标准,GPS坐标(Google Earth使用、或者GPS模块)

  • GCJ-02:中国坐标偏移标准,Google Map、高德、腾讯使用

  • BD-09:百度坐标偏移标准,Baidu Map使用,在GCJ-02的基础上又进行了一层加密,叫做墨卡托坐标


感谢观看,希望有帮助到各位观众大大~~~~~~~~

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值