利用開發者的一些調試功能,我們可以修改非越獄的蘋果手機定位,模擬任意位置。
經測試,此方法僅限開發者調試使用,並不能長時間修改手機定位。
1. 首先需要了解一些坐標系的知識
iOS,原生坐標系為 WGS-84
高德以及國內坐標系:GCS-02
百度的偏移坐標系:BD-09
這些先了解,下面需要用到轉換
2. 從高德地圖拾取網頁上找到要模擬的地點坐標,這里我測試使用 九寨溝
http://lbs.amap.com/console/show/picker
得到高德坐標:103.627229,32.755169
由於此坐標在手機上地圖顯示時,會有偏移誤差,所以需要轉換成 WGS-84蘋果用;
在網上找算法轉換后:
得到九寨溝坐標:33.144513 103.910688
在后面的.gpx文件中就放上轉換后的坐標,以后修改此處來模擬其他位置
3. 用Xcode創建一個工程FakeGPS
此時在外面新建立一個 JZG.gpx 的 XML 文件 文件信息如下,然后導入工程
<?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="33.144513" lon="103.910688"> <name>chengdu</name> <cmt>九寨溝</cmt> <desc>九寨溝</desc> </wpt> </gpx>
4. 在工程 Produce---Scheme---Eidt Scheme---Options ---
在 Default location 里面選擇導入的 JZG ;就是上面JZG.gpx的文件名,對應上述地理位置;
OK, 真機運行FakeGPS工程;
5. 在手機上運行FakeGPS工程,然后打開 手機上的高德地圖app,定位,即可看到當前位置已模擬在目的地了,
同樣查看微信定位,也是要模擬的位置了;
6. 實測上面的位置並不會永久修改,當模擬位置的app退出或是一些其他原因模擬的位置就會不在起作用;
也印證了該功能僅用於開發者調試使用,不過對於一些短時間的修改位置測試使用場景夠用了
7. 演示工程的DEMO下載
https://github.com/cocoajin/TDDDemo/tree/master/FakeGPS
參考:
坐標轉換 http://blog.csdn.net/jijiji000111/article/details/52468042