提取谷歌坐标转百度坐标的javascript API用于PHP等服务端语言

<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>1351776360</CreateTime>
 <MsgType><![CDATA[location]]></MsgType>
 <Location_X>23.134521</Location_X>
 <Location_Y>113.358803</Location_Y>
 <Scale>20</Scale>
 <Label><![CDATA[位置信息]]></Label>
 </xml> 

今天在论坛偶然看见有同行在问微信地理位置的问题,我们以前做微信方案时,这块用的比较简单,因为只显示一个乘车地图即可。所以直接把谷歌地图扔在百度地图里面,先用javascript api接口转换,然后显示乘车路线。整个过程就是使用的浏览器地图。

      说到这块,其实大家完全可以用js api转换出百度坐标之后ajax显示数据的,但是有的时候又特别需要服务端转换,所以我特意去看了百度的API接口demo,提取出了转换的接口。

http://api.map.baidu.com/ag/coord/convert?from=2&to=4&mode=1&x=116.3786889372559&y=39.90762965106183

程序员来说,不需要多言,相比就可以理解了,返回如下:

[{"error":0,"x":"MTE2LjM4NTEyODk3MDM2","y":"MzkuOTEzNzgwNTQ0Njk2"}]

又有人问了,如果是批量替换呢,好吧,好像是这样

http://api.map.baidu.com/ag/coord/convert?from=2&to=4&mode=1&x=116.3786889372559,116.38632786853032,116.39534009082035,116.40624058825688,116.41413701159672&y=39.90762965106183,39.90795884517671,39.907432133833574,39.90789300648029,39.90795884517671

返回如下:

[{"error":0,"x":"MTE2LjM4NTEyODk3MDM2","y":"MzkuOTEzNzgwNTQ0Njk2"},{"error":0,"x":"MTE2LjM5MjcyOTg3NjM=","y":"MzkuOTE0MjE5NjY3MzMy"},{"error":0,"x":"MTE2LjQwMTcxNjczNjI4","y":"MzkuOTEzNzY4NTE2MjE0"},{"error":0,"x":"MTE2LjQxMjYxOTYwMDc1","y":"MzkuOTE0MjIxMTQyNDM3"},{"error":0,"x":"MTE2LjQyMDU0MDk1ODI1","y":"MzkuOTE0MjE0MDc0NDc2"}]


是不是返回的坐标貌似看不懂,base64解码即可,因为都是浮点,所以不区分编码。