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

  1. <xml>
  2.  <ToUserName><![CDATA[toUser]]></ToUserName>
  3.  <FromUserName><![CDATA[fromUser]]></FromUserName>
  4.  <CreateTime>1351776360</CreateTime>
  5.  <MsgType><![CDATA[location]]></MsgType>
  6.  <Location_X>23.134521</Location_X>
  7.  <Location_Y>113.358803</Location_Y>
  8.  <Scale>20</Scale>
  9.  <Label><![CDATA[位置信息]]></Label>
  10.  </xml>

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

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

 

[html][/html] view plaincopy

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

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

 

 

[javascript][/javascript] view plaincopy

  1. [{“error”:0,”x”:”MTE2LjM4NTEyODk3MDM2″,”y”:”MzkuOTEzNzgwNTQ0Njk2″}]

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

 

 

[html][/html] view plaincopy

  1. 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

返回如下:

 

 

[javascript][/javascript] view plaincopy

  1. [{“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解码即可,因为都是浮点,所以不区分编码。

标签