近两年很多企业和中小型公司都开始使用钉钉打卡签到。很多苦逼党因为坐公交晚了几分钟,被扣钱,晚了几分钟,全勤没了,所以这里我们可以缓解下代码狗的痛苦 —— 模拟定位(先打卡,再到公司)。已经会连 Xcode 模拟定位的可以忽略前面的部分内容,直接跳到最后。
公司设定打卡范围,100 米,500 米,1 公里都可以,但是基于有模拟定位这个技术,钉钉在打卡选项里加了一项 WiFi 打卡,定位打卡和 WiFi 打开可以叠加存在以保证有人打卡作弊(后面讲解如何破解 WiFi)。
这里普及一下坐标系统:
目前我们经常接触的无非就是 原始坐标 , 火星坐标 , 二次加密坐标 。
在遥远的东方,有一个天朝。
天朝有一个测绘局,发明了一种把美国卫星的 GPS 的地球坐标,进行偏移的算法,计算后,得出了一个火星坐标。
为了让火星坐标能正确的显示,又给每部导航软件加入了这个算法,可以在大家的地图上还原位置。并且给每部导航收费。美其名国家安全。而且这个算法看上去很牛 B 的样子,还不可逆。
所以,只有这个国家的人都在用错误的坐标。正宗的掩耳盗铃。
民用卫星精度都已经让你出身冷汗了,何况军用卫星。打仗估值也不会用中国的电子地图吧。
只可惜各种 LBS 应用,都是个麻烦事哦。
还好黄天不负有心人,终于经过大家的模拟,计算,基本还原了 飘逸算法 。
坐标获取入口:
首先,根据各自的喜好,选好你想要模拟的位置,这里以高德地图为例:
可以看到右边有显示坐标 :
- 104.06521,30.589833
iPhone 所需要的坐标是 WGS-84 ,我们获取的是 GCJ-02 ,这里我们利用最新 飘逸还原算法 来转换出你所需要的真实坐标。
我所在的定位 四川省成都市 ACC 中航城市广场 原始坐标为:
- 104.06263069384391,30.593234492328744
这里我们需要新建一个 gpx 文件,包含坐标用于模拟定位。
- <?xml version="1.0" encoding="UTF-8" ?>
- <gpxversion="1.1"
- creator="GMapToGPX 6.4j - http://www.elsewhere.org/GMapToGPX/"
- xmlns="http://www.topografix.com/GPX/1/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
- <wptlat="30.593234492328744"lon="104.06263069384391">
- </wpt>
- </gpx>
根据不同位置不同把转换得到的原始坐标对应到 lat 和 lon 里面即可。
记得先把手机定位打开。
真机运行一个新建的空的 iOS 项目,把上面我们新建的 gpx 文件拖到工程里,配置一下 Scheme ,然后真机运行即可。
这个时候千万别点 Stop ,直接 Home 键后台,再打开带定位的应用看看你当前的位置,484 超开心。
还原定位的方法,直接 Stop 即可。
大保健做完了,可能有的会所还会送你一点小礼品,你要逗得技师开心结束的时候还会送你点小惊喜。
辣么,惊喜来了:
中午测试了下摩拜的红包车,如果我的手机定位没有改变,无论骑行多远,骑行距离都是 0 米,红包也只有一块(一中午四辆红包车均是如此)。看到这里应该不用我告诉你怎么撸红包了吧,撸红包的成本还是相对较高,必须随时背着电脑,如果公司没有开启 WiFi 打开,你又恰巧背了电脑,那就真的能随时随地打卡了。
Demo: https://github.com/rockerhx/SimulateLocation
来源: http://www.tuicool.com/articles/uaEBbm6