Skip to content

Commit 5f341b3

Browse files
author
Geniucker
committed
Merge branch 'Dawn1Ocean-main'
2 parents 812316f + 3ba3589 commit 5f341b3

File tree

7 files changed

+57
-15
lines changed

7 files changed

+57
-15
lines changed
File renamed without changes.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ iOSRealRun-cli
5151
- 查看自己的 iOS 版本,下载对应的 `DeveloperDiskImage.dmg``DeveloperDiskImage.dmg.signature` 文件
5252
- 进入脚本目录 `DeveloperDiskImage` 文件夹中建立以版本号为名称的文件夹,将刚才下载的两个文件放入此文件夹。
5353
例如,你是 15.1 版本的系统,你需要下载并解压 `DeveloperDiskImage.dmg``DeveloperDiskImage.dmg.signature` 文件,把他们放到 `DeveloperDiskImage/15.1` 里面
54-
4. 接下来和 [iOSFakeRun](https://github.com/Mythologyli/iOSFakeRun) 一样要获取你要的跑步路径,格式和其使用的格式完全相同,**但是请只画一圈**项目预置了一个画的不太行的海宁操场路径,建议所有人都自己画路径
54+
4. 接下来和 [iOSFakeRun](https://github.com/Mythologyli/iOSFakeRun) 一样要获取你要的跑步路径,格式和其使用的格式完全相同,**但是请只画一圈**项目预置了画的不太行的紫金港操场和海宁操场路径(在配置文件里改路线的文件名),建议所有人都自己画路径
5555
> 打开[路径拾取网站](https://fakerun.myth.cx/)。通过点击地图构造路径。点击时无需考虑间距,会自动用直线连接。路径点击完成后,单击上方的路径坐标——复制,将坐标数据复制到剪贴板
5656
5. 打开脚本目录里的 `route.txt` 文件,将刚复制的文件原封不动的粘贴进去,保存并退出
5757
6. 对于 Windows,你需要安装 iTunes,以确保驱动正常运行

ZJGroute.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"lng":"120.08845086732593","lat":"30.310177948123332"},{"lng":"120.08860357926262","lat":"30.310158461840157"},{"lng":"120.08868891828608","lat":"30.31021302342319"},{"lng":"120.08881917258502","lat":"30.310290968488587"},{"lng":"120.08888205397072","lat":"30.31042737220237"},{"lng":"120.08890002008091","lat":"30.310602748124037"},{"lng":"120.08886408786051","lat":"30.310836582193172"},{"lng":"120.08881468105747","lat":"30.31100806015239"},{"lng":"120.08875629119932","lat":"30.31120292110182"},{"lng":"120.08874281661667","lat":"30.311393884452592"},{"lng":"120.08867095217587","lat":"30.311588744627155"},{"lng":"120.08857663009732","lat":"30.311717352128007"},{"lng":"120.08844188427084","lat":"30.31176411844969"},{"lng":"120.08827120622394","lat":"30.31177191283444"},{"lng":"120.08816340956274","lat":"30.311725146516526"},{"lng":"120.08802866373624","lat":"30.311678380176055"},{"lng":"120.0879163755475","lat":"30.311588744627155"},{"lng":"120.0879163755475","lat":"30.311452342546055"},{"lng":"120.08793883318525","lat":"30.311292557007146"},{"lng":"120.0879433247128","lat":"30.311113285113688"},{"lng":"120.0879792569332","lat":"30.31089114339489"},{"lng":"120.08805561290154","lat":"30.310626131556315"},{"lng":"120.08810951123213","lat":"30.310329940997807"},{"lng":"120.08819934178314","lat":"30.310201331657986"},{"lng":"120.08832959608209","lat":"30.31018574263551"}

config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
v: 3.3
2-
routeConfig: "route.txt"
2+
routeConfig: "HNroute.txt"
33
libimobiledeviceDir: "libimobiledevice"
44
imageDir: "DeveloperDiskImage"

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
PyYAML==6.0
1+
geopy==2.4.1
2+
PyYAML==6.0.1

tools/run.py

Lines changed: 51 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,58 @@
22
run.py
33
automatically run the route
44
"""
5+
6+
"""修正坐标误差,百度取点使用 BD-09 坐标系,iOS使用 WGS-09 坐标系,进行转换"""
7+
def bd09Towgs84(position):
8+
import math
9+
wgs_p = {}
10+
11+
x_pi = 3.14159265358979324 * 3000.0 / 180.0
12+
pi = 3.141592653589793238462643383 # π
13+
a = 6378245.0 # 长半轴
14+
ee = 0.00669342162296594323 # 偏心率平方
15+
16+
def transform_lat(x, y):
17+
ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * math.sqrt(abs(x))
18+
ret += (20.0 * math.sin(6.0 * x * pi) + 20.0 * math.sin(2.0 * x * pi)) * 2.0 / 3.0
19+
ret += (20.0 * math.sin(y * pi) + 40.0 * math.sin(y / 3.0 * pi)) * 2.0 / 3.0
20+
ret += (160.0 * math.sin(y / 12.0 * pi) + 320 * math.sin(y * pi / 30.0)) * 2.0 / 3.0
21+
return ret
22+
23+
def transform_lon(x, y):
24+
ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * math.sqrt(abs(x))
25+
ret += (20.0 * math.sin(6.0 * x * pi) + 20.0 * math.sin(2.0 * x * pi)) * 2.0 / 3.0
26+
ret += (20.0 * math.sin(x * pi) + 40.0 * math.sin(x / 3.0 * pi)) * 2.0 / 3.0
27+
ret += (150.0 * math.sin(x / 12.0 * pi) + 300.0 * math.sin(x / 30.0 * pi)) * 2.0 / 3.0
28+
return ret
29+
30+
x = position['lng'] - 0.0065
31+
y = position['lat'] - 0.006
32+
z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * x_pi)
33+
theta = math.atan2(y, x) - 0.000003 * math.cos(x * x_pi)
34+
35+
gcj_lng = z * math.cos(theta)
36+
gcj_lat = z * math.sin(theta)
37+
38+
d_lat = transform_lat(gcj_lng - 105.0, gcj_lat - 35.0)
39+
d_lng = transform_lon(gcj_lng - 105.0, gcj_lat - 35.0)
40+
41+
rad_lat = gcj_lat / 180.0 * pi
42+
magic = math.sin(rad_lat)
43+
magic = 1 - ee * magic * magic
44+
sqrt_magic = math.sqrt(magic)
45+
46+
d_lng = (d_lng * 180.0) / (a / sqrt_magic * math.cos(rad_lat) * pi)
47+
d_lat = (d_lat * 180.0) / (a * (1 - ee) / (magic * sqrt_magic) * pi)
48+
49+
wgs_p["lat"] = gcj_lat * 2 - gcj_lat - d_lat
50+
wgs_p["lng"] = gcj_lng * 2 - gcj_lng - d_lng
51+
return wgs_p
52+
553
# get the ditance according to the latitude and longitude
654
def geodistance(p1, p2):
7-
lat1, lng1 = p1["lat"], p1["lng"]
8-
lat2, lng2 = p2["lat"], p2["lng"]
9-
from math import radians, cos, sin, asin, sqrt
10-
lng1, lat1, lng2, lat2 = map(radians, [float(lng1), float(lat1), float(lng2), float(lat2)]) # 经纬度转换成弧度
11-
dlon=lng2-lng1
12-
dlat=lat2-lat1
13-
a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
14-
distance=2*asin(sqrt(a))*6371*1000 # 地球平均半径,6371km
15-
return distance
55+
from geopy.distance import geodesic
56+
return geodesic((p1["lat"],p1["lng"]),(p2["lat"],p2["lng"])).m
1657

1758
def smooth(start, end, i):
1859
import math
@@ -97,13 +138,12 @@ def run1(loc: list, v, dt=0.2):
97138
fixedLoc = randLoc(fixedLoc, n=n) # a path will be divided into n parts for random route
98139
clock = time.time()
99140
for i in fixedLoc:
100-
utils.setLoc(i)
141+
utils.setLoc(bd09Towgs84(i))
101142
while time.time()-clock < dt:
102143
pass
103144
clock = time.time()
104145

105146
def run(loc: list, v, d=15):
106-
import tools.utils as utils
107147
import random
108148
import time
109149
random.seed(time.time())

tools/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def getDeviceInfo():
6363

6464

6565
def setLoc(loc):
66-
cmd(["idevicesetlocation", "--", str(loc["lat"]-0.00389), str(loc["lng"]-0.01075)], False)
66+
cmd(["idevicesetlocation", "--", str(loc["lat"]), str(loc["lng"])], False)
6767

6868
def resetLoc():
6969
cmd(["idevicesetlocation", "reset"], False)

0 commit comments

Comments
 (0)