年轻人的第一个swift:ios 模拟定位打卡
起因
由于最近马上过节了,而我也被这节日的气氛所支配,所以今天完成了未打卡三连成就。公司现在规定每个月只有两次未正常打卡的机会,超过了会有相应的惩罚机制。我感觉自己工作时长接近十个小时,但是因为忘记打卡被处罚的话心里多少有点不爽,所以就想是不是可以补救一下。- -!
模拟定位
很早之前就听说Xcode 提供了模拟定位,方便开发者调试,所以我想这个应该是个切入点,问了一个懂这个大佬,也得到了肯定的答案。
所以主体思路是通过Xcode 模拟定位,然后借助这个模拟定位功能,定位到公司附近,然后钉钉打卡。不过网上找到的方法大多数都不是swift 的,我自己摸索了一个小时找到了具体方案,其实非常的简单。
方法
- 首先,通过高德/百度地图/腾讯地图获取公司附近经纬度,不过需要注意的是iOS原生坐标为
世界标准地理坐标(WGS-84), 百度地图的坐标为BD-09,高德为中国国测局地理坐标(GCJ-02),需要将位置转换为iOS 坐标下的。
坐标转换有比较简单的方法,GitHub上找到一个coordTransform_py(忽略我是一个GIS专业学生 - -!),对应转换:
1 | from coordTransform_utils import * |
- Xcode 新建一个项目,项目内新建一个gpx 文件,文件内容里添加对应的经纬度:
1 |
|
- 手机与电脑连接,然后让程序在手机上运行起来,同时保持手机定位打开状态,此时就可以通过模拟位置来修改手机的当前定位了。最终打卡成功。
总结
本文是由于未正常打卡紧缺,我尝试补救的一次探索,由于是第一次接触Xcode ,感觉有点兴奋。不过希望看到这里的你不要用这个方法来做坏事。
关于头图
打卡成功