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