百度地图提供了一个将google 坐标偏移计算到baidu 坐标的接口(他提供的示例http://
dev.baidu.com/wiki/static/map/API/examples/?v=1.3&0_6#0&6),他是一个js,向baidu api里的convert 发起一个请求,要是在web上我们直接使用那个接口当然没问题。但是我想在iOS中把当前MKMapView 上获取的lng,lat 也转换成baidu 那个,然后我就看了那个接口的地址,发现他返回的是:
BMap.Convertor.cbk_2335&&BMap.Convertor.cbk_2335({"error":0,"x":"MTIwLjI5NzE4ODEwMTc0","y":"MzEuNTc5NzcxMjgwNTky"})
而在他原来的js里cbk_2335是一个随机生成的回调函数,里面实际上是:
BMap.Convertor[callbackName] = function(xyResult){
delete BMap.Convertor[callbackName]; //调用完需要删除改函数
var point = new BMap.Point(xyResult.x, xyResult.y);
callback && callback(point);
}
设置了断点后,查看xyResult的话,就是一个Object:
Object{
error: 0
x: "MTIwLjI5NzE4ODEwMTc0"
y: "MzEuNTc5NzcxMjgwNTky"
}
他的BMap.Point 中用这两个加密的坐标就可以完成构造了(在他的api手册里,说明的是两个Number参数),但是我如何在iOS里也使用呢,我如何能把这个转换成实际坐标呢,实在想不出办法来啊?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/42285
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.