Skip to content

将百度地图平面投影坐标(墨卡托)转换为经纬度坐标

Notifications You must be signed in to change notification settings

everalan/convertMC2LL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

convertMC2LL

将百度地图平面投影坐标(墨卡托)转换为经纬度坐标

用在什么场景

使用PHP来调用百度地图API,某些情况下得到的是投影坐标,需要转换为经纬度坐标

为什么要写这个东西

首先,百度地图最好用
第二,百度接口很不准,搜个西城区的地址给你定位到门头沟去
第三,百度有些隐藏接口非常好用
第四,隐藏接口坐标是投影坐标,需要转换成经纬度坐标
第五,只有百度知道怎么转换
第六,只有百度地图JS文件能看到源码

所以就写了这么个程序来将投影坐标转换为经纬度坐标。当然是根据百度地图js原来来改造的。

使用方法

非常简单

include 'src/Baidumap.php';
$baidu = new Baidumap();
$point = new b4(1294830854, 484857493);
$ll = $baidu->convertMC2LL($point);
var_dump($ll);
#object(b4)#28 (2) { ["lng"]=> float(116.31536904395) ["lat"]=> float(40.071504624032) } 

常用场景举例

需要将用户输入的地址转换成经纬度坐标。百度提了Geocoding API ,但是这个接口太傻,不是地址不存在,就是把昌平的地址定位到门头沟去。

后来发现一个未公开的地址搜索接口 ,这个接口好用,基本上在百度地图首页能搜到的地址这里都能搜到,而且即使你输错了地址也会有一个字段(suggest_query)告诉你正确的地址应该叫什么。

但是这个接口返回的坐标是投影坐标:(1294830854,484857493),这个时候就需要将投影坐标转换为经纬度坐标。

About

将百度地图平面投影坐标(墨卡托)转换为经纬度坐标

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages