DEMO下载: https://github.com/FORMAT-qi/testGPS.git
实现过程
经测试,利用开发者的一些调试功能,我们可以修改非越狱的苹果手机定位,模拟任意位置,此方法仅限开发者调试使用,并不能长时间修改手机定位。
-
首先需要了解一些坐标系的知识
iOS,原生坐标系为 WGS-84
高德以及国内坐标系:GCS-02
百度的偏移坐标系:BD-09
这些先了解,下面需a要用到转换
-
从高德地图拾取网页上找到要模拟的地点坐标,这里我测试使用 广东正佳广场的坐标
http://lbs.amap.com/console/show/picker
得到高德坐标:113.32703,23.132175
![](https://img.haomeiwen.com/i2332815/c2b3d4eacbf8a2cc.png)
由于此坐标在手机上地图显示时,会有偏移误差,所以需要转换成 WGS-84苹果用;
在网上找算法转换后:
得到广州大悦城的坐标坐标:113.377156,23.043137
在后面的.gpx文件中就放上转换后的坐标,以后修改此处来模拟其他位置
-
用Xcode创建一个工程test
此时在外面新建立一个 test.gpx 的 XML 文件 文件信息如下,然后导入工程
代码:
<code>
<?xml version="1.0" encoding="UTF-8" ?>
<gpx version="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">
<wpt lat="23.134762" lon="113.321602">
</wpt>
</gpx>
</code> -
在工程 Produce---Scheme---Eidt Scheme---Options ---
在 Default location 里面选择导入的 test ;就是上面test.gpx的文件名,对应上述地理位置;
![](https://img.haomeiwen.com/i2332815/656ddd5719c09b9d.png)
OK, 真机运行test工程;
- 在手机上运行testGPS工程,然后打开 手机上的百度地图app,定位,即可看到当前位置已模拟在目的地了,
同样查看百度地图定位,也是要模拟的位置了;
-
实测上面的位置并不会永久修改,当模拟位置的app退出或是一些其他原因模拟的位置就会不在起作用;
也印证了该功能仅用于开发者调试使用,不过对于一些短时间的修改位置测试使用场景够用了(比如说 xx天x降x红包)
-
演示工程的DEMO下载
地址:https://github.com/FORMAT-qi/testGPS.git
网友评论