iOS 之虚拟定位实现

废话不多说先上代码

关于定位

iOS中关于定位,有三种模式:

  • 基站定位
    由于每个基站都有一个唯一标识符,所以苹果服务器通过这个唯一的标识符来定位当前设备的位置,精度不是很高,但是效率较快。
  • wifi定位
    与基站识别的方式类似,通过WiFi连接后,获取到mac地址,然后在苹果服务器中确定一个位置,这个精度稍微比基站的获取到的精度更高。
  • GPS定位
    这个就是通过GPS卫星和设备中的GPS终端进行通讯,然后精确的定位。这种定位的精度是最高的,但是耗电量等也是最大的,然后也不能被其他的覆盖遮挡。

关于坐标系的问题

  • WGS-84:国际上的GPS以及iOS定位的坐标系;
  • GCS-02:国内和高德定位的坐标系(对地图数据进行加密偏移处理);
  • BD-09:百度定位的坐标系(百度地图偏移多一次,仿佛记得转换成了火星坐标。);

如果直接用国内的坐标放到iOS地图上,会出现偏差,所以获取到坐标点后需要进行坐标的转换处理。

gpx文件

利用Xcode的模拟定位调试功能,文件配置是就修改掉GPS的经纬度参数,配置如下:
Product->Scheme->Edit Scheme->Options->Default Location ,选择刚才创建的GPX File,allow location simulation需要打上勾。

scheme的配置

注意:
这需要开发者账号,然后不能长时间的运行,我试了下 ,大概有半个小时。

实测

微信定位

定位到的地址是平壤。。。。刺杀鑫胖。。。。(玩笑)
这里不单单是微信,其他的app都可以,这里的demo已经把GPS的参数都修改掉了,然后其他的app在调用GPS的时候,参数都是已经被修改过的,然后是显示的定位就是被修改掉的定位。

上班打卡不怕了,老婆查岗不怕了,朋友圈装逼更溜了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容