python运动目标绘制轨迹,python模拟运动轨迹
硬件环境:
MacBook Pro (15英寸,2017年)
iPhone 8 Plus
macOS Mojave 10.14.5
iOS 12.4
Xcode 10.2.1
Python 3.7.0
崇高的文本3.1.1
打开Xcode-偏好设置来添加Apple ID
在Xcode上新建一个项目,打开Xcode-新建一个Xcode项目。
选择ios菜单-单视图App,填写项目名称推荐非中文,将文件夹存放在准备好的文件夹中推荐非中文。
此时将iPhone连接到mac,连接的设备显示在左上角。
以下结果是成功的:
2.使用Xcode创建包含gpx的文件
GPX(GPS交换格式)是一种XML格式,是为应用软件设计的通用GPS数据格式,专门用于存储地理信息。
GPX文件包含由纬度和经度点组成的轨迹,包括时间、名称和其他信息。
回到Xcode,打开Xcode-File-New-File。
选择IOS菜单下的GPX文件。
选择一个位置并将GPX文件命名为示例:fake_loc.gpx
以下gpx文件的自动生成成功
分析一下gpx文件,它的格式和标签语言的格式差不多。
在标签中包括纬度和经度(lat,lon)、点的名称和时间。
第一条评论的内容如下:
"提供一个或多个包含纬度/经度对的点_
如果提供了一个点,Xcode将模拟该特定点_
如果提供了多个点,Xcode将依次模拟每个点" u
第二条评论的内容如下:
“你可以选择给每个坐标点加一个时间戳_是的,Xcode可以按照时间戳的顺序依次移动到每个坐标点,按照时间点插入速度x。
如果没有提供时间戳,Xcode将使用固定速度_
航路点必须按时间升序排列_ "
所以可以通过输入一系列的点来模拟位置,让Xcode依次设置每个点来模拟人的跑步行为。
3.使用Python自动生成一系列跟踪点
第一篇文章记录了mac python和sublime text3的环境配置。
对gpx文件结构的分析表明,目标gpx文件结构应该是:
?xml版本=1.0 ?
# .
#等等。
指定地点的经纬度信息可从地图经纬度查询网站:http://www.gpsspg.com/maps.htm.获取
我们选择Xi安的一所211大学作为实验地点:
该网站提供多家公司定位标准下的经纬度信息。
因为每个公司的定位标准不一样,经纬度会有偏差。这时候就要看用哪个APP的地图进行模拟了。
以我们的一款跑步打卡APP trails Le Run为实验对象,在这所大学实现了水平移动和垂直移动。
经过验证,该应用程序使用谷歌地球标准。第一,通过这个网站获取一条直线的经纬度点:
起点:
纬度:34度,经度:100度。53860.88868888661
中间点:
纬度:34.393255磅
终点:
纬度:34度,经度:100度。53670.88868888667
在这个网站上,可以通过经纬度获取距离信息:http://www.hhlink.com//的经纬度
计算距离约为78米。
然后根据要求,通过测距得到相应的距离,从而计算出水平和垂直移动速度。
可以得出这样的结论:
在这所大学里,从北到南经度减小,纬度增加。
在这所大学里,从东到西经度减小,纬度减小。
满足跑步打卡APP trail的配速要求:3 ~ 9 min/km,例如由北向南生成100分。
经度依次减小,纬度依次增大,这100个点分散在路径上。
每个点之间减少或增加的距离可以乘以一个指定范围内的随机数,这样这些点就会显示出一条从一边到另一边的轻微摇摆的路径。
在点数较多的情况下,类似于人类的跑步轨迹。
根据大学的位置,编写相应的python程序:
导入随机#初始点信息
a1=34.3752989239
b1=108.9080291565#中间点信息
a2=34.3740193255
b2=108.9085977848对于I in range (1,1000): while (A1=A2): #当经度没有到达中点时执行循环条件。
Xa=round(随机。uniform (0.2,7)) #随机数,用来模拟人类跑步。
Xb=圆形(随机.均匀(12,15)) #垂直移动
a1=round( a1 - 0.0000072 * xa,10)
B1=round (b10.000008 * XB,10) #输出信息
打印()打印()范围内的I(1,100
xa=round( random.uniform(2,8))
Xb=round( random.uniform(1,3)) #水平移动
a2=舍入(a2 - 0.000003 * xa,10)
b2=round( b2 - 0.000025 * xb,10)print()print()
获取输出(摘录):
将输出复制并粘贴到gpx文件中。
并命令s进行保存。
您可以在xcode项目目录中找到并打开该文件:
4.开始位置模拟。
确保手机连接到电脑并解锁,以保持屏幕始终打开。
点按Xcode右上角的开始图标:
第一次会提示iPhone不信任开发者。
在设置-常规-设备管理中点击开发者,选择信任。
再次点按Xcode右上角的图标。
一分钟左右手机上会出现一个灰色的app图标。
单击主页按钮退出并进入试跑。
Xcode下面有一列函数,点击位置图标,选择你的fake_loc。
此时,APP已经开始按照gpx文件中的路径移动。
摘要
模拟中不考虑速度,按照gpx点默认Xcode更新速度实现。
在控制整体移动速度时,完全是根据点的密度,也就是点的位置变化程度来实现的。
后期可以根据时间戳提高更准确的速度。
根据越野跑后台数据,作弊检测主要看平均配速、每公里步数、装备uuid、装备序列号。
本文的方法可以解决平均步速、uudi、序列号等问题。(因为是真机实现的)。
但是步数只有在模拟时摇手机才能达到。
原文:https://www.cnblogs.com/Joeric07/p/11173651.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。