腾讯地图经纬度转百度地图经纬度(PHP)

最近想帮公司线下的门店采集一下经纬度,标注在地图上,一研究居然地图还有这么多标准,现总结相关知识如下,首先了解一下当前互联网地图的坐标系现状

一、坐标系介绍

1. 地球坐标 (WGS84)

  • 国际标准,从专业GPS 设备中取出的数据的坐标系
  • 国际地图提供商使用的坐标系

2. 火星坐标 (GCJ-02)也叫国测局坐标系

  • 中国标准,从国行移动设备中定位获取的坐标数据使用这个坐标系
  • 国家规定: 国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。
  • 腾讯地图用的也是GCJ02坐标

3. 百度坐标 (BD-09)

  • 百度标准,百度 SDK,百度地图,Geocoding 使用
  • (本来就乱了,百度又在火星坐标上来个二次加密)
二、PHP 代码
百度地图BD09坐标
    * 腾讯地图用的也是GCJ02坐标
    * @param double $lng 经度
    * @param double $lat 纬度
    */
    function Convert_GCJ02_To_BD09($lng,$lat)
    {
        $x_pi = 3.14159265358979324 * 3000.0 / 180.0;
        $x = $lng;
        $y = $lat;
        $z =sqrt($x * $x + $y * $y) + 0.00002 * sin($y * $x_pi);
        $theta = atan2($y, $x) + 0.000003 * cos($x * $x_pi);
        $lng = $z * cos($theta) + 0.0065;
        $lat = $z * sin($theta) + 0.006;
        return array('lng'=>$lng,'lat'=>$lat);
    }
?>

大家可以通过此工具来验证准确性:百度地图拾取坐标系统

腾讯地图经纬度转百度地图经纬度(PHP)_第1张图片
百度地图坐标拾取系统 截图
参考资料:

http://cnodejs.org/topic/564c0a27e4766d487f6fe38d
http://www.open-open.com/code/view/1440854840138

你可能感兴趣的:(腾讯地图经纬度转百度地图经纬度(PHP))