我想在iOS中使用baidu那个坐标偏移接口,但是他返回的居然加密了

2012-07-13 16:14:08 +08:00
 adow
百度地图提供了一个将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里也使用呢,我如何能把这个转换成实际坐标呢,实在想不出办法来啊?
5358 次点击
所在节点    iDev
16 条回复
sunwenjun
2012-07-13 16:16:06 +08:00
目前无解, 他们6月份说会提供这样的接口,但是现在还没有呢。。。
013231
2012-07-13 16:21:24 +08:00
這一看就是Base64編碼呀. 解碼後是:
x: 120.29718810174
y: 31.579771280592
adow
2012-07-13 16:51:39 +08:00
@013231 噢晕,我咋半天没看出来
Smartype
2012-07-13 17:01:15 +08:00
我破解了Google的算法。对,是算法,不需要数据库。
http://apt.if0rce.com/gmm/
adow
2012-07-13 17:05:01 +08:00
@Smartype 怎么用?
weihuilee
2012-07-13 17:23:30 +08:00
@Smartype 很牛x啊,这算法能不能给份看看啊
Smartype
2012-07-13 17:31:16 +08:00
@adow 如果流量不大的话,我可以给你一个web接口,让我帮你调用。
我不敢公开,怕被喝茶。因为Google没有办法改变算法,所有的现有设备(iOS,Android等)都是这个算法。
treo
2012-07-16 18:21:17 +08:00
@Smartype 牛人啊,请问这个算法是逆向得到的还是模拟出来的?
sd4399340
2012-07-16 18:25:32 +08:00
@Smartype 太专业了哇~
Smartype
2012-07-16 22:26:39 +08:00
@treo 逆向了MapKit和GMM
Smartype
2012-07-16 22:29:44 +08:00
算法也包含请求系数和一些变态的转换,一组系数可以用在一片区域上用来纠偏
keakon
2012-07-17 16:20:42 +08:00
@Smartype mark一下,曾经也找过很多资料,一直无解。虽说现在用不到,不过一直好奇啊…
GreatHan
2012-07-17 18:05:24 +08:00
使用数学归纳法,用数据算函数,哈哈
th2006464
2012-07-17 18:19:46 +08:00
@Smartype 太牛逼了
colorday
2012-07-17 18:30:04 +08:00
开放学习下吧
valianliu
2012-07-17 21:04:23 +08:00
@Smartype 膜拜牛人,给力

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/42285

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX