利用開發者的壹些調試功能,我們可以修改非越獄的蘋果手機定位,模擬任意位置。
經測試,此方法僅限開發者調試使用,並不能長時間修改手機定位。
1. 首先需要了解壹些坐標系的知識
iOS,原生坐標系為 WGS-84
高德以及國內坐標系:GCS-02
百度的偏移坐標系:BD-09
這些先了解,下面需要用到轉換
2. 從高德地圖拾取網頁上找到要模擬的地點坐標,這裏我測試使用 九寨溝
/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 - /GPX/1/1"
xmlns:xsi="/GPX/1/1 /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下載
/cocoajin/TDDDemo/tree/master/FakeGPS