数据的展示方法和装置与流程

文档序号:11155342
数据的展示方法和装置与制造工艺

本发明涉及数据处理领域,具体而言,涉及一种数据的展示方法和装置。



背景技术:

随着互联网相关技术的快速发展,用户运动步数信息越来越多为广大开发人员所青睐和使用。通过用户授权相应的内置接口,开发人员便可以将步数信息和统计数据应用于健身运动类,公益捐步类等各类应用的开发当中。

现有技术,通过终端系统内置应用获取陀螺仪和加速传感器捕捉到的用户运动数据并通过内置算法进行计算统计,将此过程封装成接口,在用户授权普通应用可以获取此接口权限的情况下,普通应用调用这一接口获得用户运动数据并通过进一步设计开发为用户提供服务,如运动健康服务或步数捐赠服务等。

获取授权调用接口获得步数的方法一定需要用户授权普通应用调用系统内置接口才能获取步数信息,如果没有用户授权则无法进行后续步骤提供服务,因而获取用户授权成了普通应用向用户提供服务的至关重要的一环。如图1所示,用户的运动行为信息通过终端上陀螺仪和加速传感器表现出来,内置应用计算统计用户的运动行为信息,并封装成接口。用户授权其他应用可以调用该接口,从而使其他应用调用接口来获得计算出来的运动行为信息。然而,获取授权调用接口获得步数的方法目前只能在原生场景下使用,而随着越来越多Web开发和混合开发的产生,此方案由于接口权限问题难以应用于Web开发和混合开发当中,无法满足市面上常见的Web开发和混合开发场景需求。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据的展示方法和装置,以至少解决由于接口授权问题造成的终端的应用无法获取终端的运动数据的技术问题。

根据本发明实施例的一个方面,提供了一种数据的展示方法,包括:web应用调用web页面的JS对象事件来获取终端的加速度信息,其中,所述web应用安装在所述终端上,所述JS对象事件用于获取所述终端在运动状态下的所述加速度信息;所述web应用对所述加速度信息进行数据处理,得到所述加速度信息所表示的所述终端的运动数据;所述web应用根据所述运动数据生成与所述web应用相关的展示数据;所述web应用上显示所述展示数据。

根据本发明实施例的另一方面,还提供了一种数据的展示装置,包括:获取单元,用于通过调用web页面的JS对象事件来获取终端的加速度信息,其中,所述web应用安装在所述终端上,所述JS对象事件用于获取所述终端在运动状态下的所述加速度信息;处理单元,用于对所述加速度信息进行数据处理,得到所述加速度信息所表示的所述终端的运动数据;第一生成单元,用于根据所述运动数据生成与所述web应用相关的展示数据;展示单元,用于显示所述展示数据

在本发明实施例中,由于web应用本身具有JS代码,并可以调用JS对象事件来获取陀螺仪和加速传感器的加速度信息,从而生成与web应用相关的展示数据,并在web应用中展示出来。其中,由于web应用本身的JS对象事件直接获取陀螺仪和加速传感器的加速度信息,不需要web应用再通过授权的接口获取加速度信息,无需用户授权就可以获得加速度信息,进而获得终端的运动数据,解决了由于接口授权问题造成的终端的应用无法获取终端的运动数据的技术问题,达到了无需用户授权就可以获取终端运动数据的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据现有技术的一种获取运动数据的示意图;

图2是根据本发明实施例的一种可选的硬件系统架构的示意图;

图3是根据本发明实施例的数据的展示方法的流程图;

图4是根据本发明实施例的游戏场景进行定位的示意图;

图5是根据本发明实施例一种混合应用场景的示意图;

图6是根据本发明实施例另一种混合应用场景的示意图;

图7是根据本发明实施例正常行走的加速度变化曲线的示意图;

图8是对图7的z轴加速度变化曲线进行均值滤波后的曲线的示意图;

图9是对图8的滤波后的曲线进行波峰检测后的示意图;

图10是根据本发明实施例进行均值滤波的曲线示意图;

图11是根据本发明又一实施例的正常行走的加速度变化曲线的示意图;

图12是根据本发明实施例的慢步走的加速度变化曲线的示意图;

图13是根据本发明实施例的快步走的加速度变化曲线的示意图;

图14是对图11的z轴加速度变化曲线进行均值滤波后的曲线的示意图;

图15是对图12的z轴加速度变化曲线进行均值滤波后的曲线的示意图;

图16是对图13的z轴加速度变化曲线进行均值滤波后的曲线的示意图;

图17是对图14滤波后的曲线进行波峰检测后的示意图;

图18是对图15滤波后的曲线进行波峰检测后的示意图;

图19是对图16滤波后的曲线进行波峰检测后的示意图;

图20是本发明实施例的数据的展示装置的示意图;

图21是根据本发明实施例的终端的硬件示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

名词解释:

应用:集成在移动终端,通过用户同意获取用户信息(如运动信息,位置信息等),并据此为用户提供某种服务。

原生应用:基于智能终端本地操作系统如IOS、Android、WP并使用原生程式编写运行的第三方应用程序,也叫本地应用。一般使用的开发语言为JAVA、C++、Objective-C。

Web应用:用HTML5超文本标记语言等Web技术进行开发的移动端应用。

混合应用:介于Web应用、原生应用这两者之间,兼具原生应用良好用户交互体验的优势和Web应用跨平台开发的优势的应用。

JavaScript:简称JS,一种高级编程语言,通过解释执行,是一门动态类型,面向对象的直译语言。

Devicemotion:可以实时获取手机的运动加速度及相关信息的JavaScript对象事件,即JS对象事件。

接口:泛指实体把自己提供给外界的一种抽象化物,用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式,此处特指获得移动终端的相应步数统计方法的调用。

均值滤波:将用户走路过程中加速度随时间变化的点集,用每个点的前n个点和后n个点的均值来指代该时刻的加速度值,用以消除点集所构成的波形的锯齿,从而可以将不规则的波动图像变得平滑和有规律可循的过程。

波峰检测:将用户走路过程中加速度随时间变化的波形,通过波峰检测算法得到波形的波峰和波谷,进而计算走路频率的检测方式。

实施例1

根据本发明实施例,提供了一种可以通过本申请装置实施例执行的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

根据本发明实施例,提供了一种数据的展示方法。

可选地,在本实施例中,上述数据的展示方法可以应用于如图1所示的终端102和服务器104所构成的硬件环境中。如图1所示,终端102通过网络与服务器104进行连接,上述网络包括但不限于:移动通信网络、广域网、城域网或局域网,终端102可以是手机终端,也可以是PC终端、笔记本终端或平板电脑终端。

图2中示出的硬件环境系统的主要工作原理是:

终端102上安装的web应用或者混合应用调用JS对象事件,通过JS对象事件获取加速度信息,由于终端102的运动可以通过加速度信息表示,因此,通过加速度信息获取终端102的运动数据。根据运动数据生成与web应用或者混合应用相关的展示数据,并在终端102上展示上述展示数据。运动数据以及生成的展示数据可以存储在服务器104中。

图3是根据本发明实施例的数据的展示方法的流程图,以下结合图3对本发明实施例所提供的数据的展示方法做具体介绍,如图3所示,该数据的展示方法主要包括如下步骤:

步骤S302,web应用调用web页面的JS对象事件来获取终端的加速度信息,其中,web应用安装在终端上,JS对象事件用于获取终端在运动状态下的加速度信息。

加速度信息可以由终端上设置的陀螺仪和加速传感器来获得,陀螺仪可以测量终端旋转和偏斜时的转动角速度,加速传感器可以测量线加速。在无需用户授权的情况下,打开web应用的web页面就可以通过JS对象事件来获取终端内陀螺仪和加速传感器的数据,从而获得终端在x,y,z方向上的加速度变化情况,即获得了加速度信息。

步骤S304,web应用对加速度信息进行数据处理,得到加速度信息所表示的终端的运动数据。

对加速度信息进行的数据处理包括均值滤波和峰值检测。终端的运动数据包括持有终端的用户的行走步数、速度和终端的旋转角度和方向等。

步骤S306,web应用根据运动数据生成与web应用相关的展示数据。

根据web应用所要展示的领域和内容,结合运动数据生成与web应用相关的展示数据。比如,在“健康”应用中生成用户行走步数、速度和行走路线等展示数据;在“游戏”应用中生成用户在游戏场景中的位置、角色的动作和场景随终端角度变化而产生的变化等展示数据;在“图片”或“购物”应用中生成图片随着终端的旋转而旋转的展示数据。

步骤S308,web应用上显示展示数据。

在web应用上显示生成的展示数据,例如,在上述多个场景中,在“健康”应用中显示用户行走步数、速度和行走路线等展示数据;在“游戏”应用中显示用户在游戏场景中的位置、角色的动作和场景随终端角度变化而产生的变化等展示数据;在“图片”或“购物”应用中显示图片随着终端的旋转而旋转的展示数据。

在本实施例中,由于web应用本身具有JS代码,并可以调用JS对象事件来获取陀螺仪和加速传感器的加速度信息,从而生成与web应用相关的展示数据,并在web应用中展示出来。其中,由于web应用本身的JS对象事件直接获取陀螺仪和加速传感器的加速度信息,不需要web应用再通过授权的接口获取加速度信息,无需用户授权就可以获得加速度信息,进而获得终端的运动数据,解决了由于接口授权问题造成的终端的应用无法获取终端的运动数据的技术问题,达到了无需用户授权就可以获取终端运动数据的技术效果。

可选地,在web应用对加速度信息进行数据处理,得到加速度信息所表示的终端的运动数据之后,方法还包括:终端系统自带的原生应用调用web页面获取运动数据;原生应用在后台根据运动数据生成与原生应用相关的展示数据。

原生应用是终端的操作系统自带的应用,原生系统可以调用web页面,同时web页面可以获取运动数据,因此,混合应用中的原生应用调用web页面就可以得到运动数据,也就能根据运动数据生成与原生应用相关的展示数据。对于混合应用来说,混合应用中的原生应用可以调用web应用的web页面,就实现了混合应用获取运动数据。

由上述实施例可知,本实施例可以应用在web应用的场景下,也可以应用在混合应用的场景下,以下分别对这两个场景进行说明。

(一)web应用场景。

本实施例在web场景下可开发出诸多Html5活动页面的互动创新场景和互动玩法,如图4所示的游戏Pokemon GO中,用户在当前页面对话框观测精灵位置,并向精灵运动的过程,可以通过JS对象事件获取加速度信息,并根据加速度信息获取用户的运动步数、运动方向等信息,根据运动步数和运动方向确定用户移动的距离和用户的实时位置,以便在用户移动过程中,准确在图4所示的场景中显示用户的位置。

可选地,web应用根据运动数据生成与web应用相关的展示数据包括:web应用根据运动数据获取用户的运动距离和运动方向;web应用根据终端的GPS定位信息获取用户的地理位置信息;根据运动距离、运动方向和地理位置信息生成web应用上显示的用户的位置。

web应用根据运动数据获取用户的运动距离和运动方向确定出用户的实时位置,同时,还可以将步数和方向等运动信息结合传统的方位信息精准计算出用户前进的距离,并在前进过程中配合GPS信息进行双向校验。结合GPS信息和运动步数和方向信息来计算出用户当前的位置信息,从而修正用户在游戏场景中显示的位置,这样可以修正类似高互动游戏的定位不准确问题,以便用户获得更逼真的互动体验。

(二)混合应用场景。

本实施例通过对用户步数进行记录和实时反馈,可应用于现有类似微信运动等记步运动应用(即混合应用),如图5和图6所示。如图5,显示一段时间内当前用户每天的行走步数,以及在所有好友中的排名。如图6,显示当前用户好友的行走步数、排名和与目标步数的差距等信息。通过原生进程调取本实施例封装的接口从而实现对用户步数的实施统计和更新,且适应于走路,跑步等诸多运动状态,结合其他用户信息和接口信息可以实现对用户身体状况的检测,运动建议和健身方案生成等个性化服务,同时可以衍生出公益捐步等各类特色服务。本实施例封装的接口是web网页封装的接口,无需用户授权就能够被原生应用调用。

例如:根据用户输入的每日运动目标中的走路步数,以及已经计算出的用户已经行走的步数,确定用户还需要行走的步数。或者,根据用户的体重、身高、年龄和性别等信息,生成用户每日需要消耗的能量,根据用户行走、跑步或者其他运动的耗能,确定出用户还需要消耗的能量。并根据需要消耗的能量生成运动的时间、强度和运动类型等健身方案,还可以生成允许食用的食物种类和食物的数量等饮食方案。

例如:为了促进用户绿色出行和锻炼身体,在公益应用中调用web网页来获取用户绿色出行的距离(如公里数),根据公里数生成捐款、捐物或植树造林、老年儿童的关爱等公益方案。

在本实施例中的健身方案、饮食方案和公益方案都可以作为展示数据展示在混合应用中。

下面以运动数据为运动步数为例对本实施例的数据处理进行说明。

可选地,加速度信息包括终端的Z轴加速度变化曲线,web应用对加速度信息进行数据处理,得到加速度信息所表示的运动数据包括:web应用对Z轴加速度变化曲线进行均值滤波处理,得到滤波后的Z轴加速度变化曲线;web应用对滤波后的Z轴加速度变化曲线进行波峰检测,得到Z轴加速度突变周期曲线;web应用确定Z轴加速度突变周期曲线所表示的运动数据,其中,运动数据包括持有终端的用户运动的步数。

如图7所示,加速度信息包括x,y,z方向上的加速度变化情况并形成三条波动曲线。选取z轴加速度变化情况作为判断步数的变化依据,将波形中每个z方向上加速度值的前后若干个点的均值替代此时的加速度值,经过均值滤波可得到平整光滑的波动曲线如图8,在此基础上进行二次波峰检测,即可得到z方向上加速度变化情况如图9,只要计算得到加速度正负突变的次数便可得到用户在打开web应用的web页面时运动步数的统计。通过本实施例可以在用户打开此页面时,实现类似场景虚拟类的高互动游戏,当用户跳出页面时暂停此步数统计。

可选地,web应用对Z轴加速度变化曲线进行均值滤波处理,得到滤波后的Z轴加速度变化曲线包括:web应用获取Z轴加速度变化曲线中目标点的目标加速度值,其中,目标加速度值为以目标点为中点的预设范围内的多个加速度值的加权平均值,目标点为Z轴加速度变化曲线中的任意一点;web应用根据Z轴加速度变化曲线中每个目标点的目标加速度值生成滤波后的Z轴加速度变化曲线。

为了使最终结果更精确,本实施例利用均值滤波算法将Z轴加速度变化曲线中部分影响到最终结果的数据进行过滤,其基本原理如以下公式:

g(x,y)=1/m∑f(x,y)

其中,x和y分别表示时刻,将时刻x和y区间内的所有z方向上加速度值进行加权计算,得到该时段内加速度的均值,并作为(x+y)/2时刻加速度的值,通过均值滤波,可以有效的消除异常波动对整体造成的影响,并获得较为光滑平整且呈现周期性良好的z方向加速度变化波动图像,如图10所示,滤波前的Z轴加速度变化曲线上,圆圈中的点所表示的数据为异常波动,通过上述公式,可以消除这些异常波动对Z轴加速度变化曲线整体造成的影响,得到图10所示的滤波后的Z轴加速度变化曲线。

可选地,web应用对滤波后的Z轴加速度变化曲线进行波峰检测,得到Z轴加速度突变周期曲线包括:web应用获取滤波后的Z轴加速度变化曲线中所有加速度值的加权平均值;web应用将所有加速度值的加权平均值作为阈值;web应用对滤波后的Z轴加速度变化曲线中每个加速度值与阈值进行比较;web应用将加速度值大于阈值的点记为+1,将加速度值大于阈值的点记为-1;根据记录结果生成Z轴加速度突变周期曲线。

对滤波后的Z轴加速度变化曲线进行二次波峰检测,将滤波后的Z轴加速度变化曲线上所有点的均值作为阀值,大于阀值的点用1表示,小于阀值的点用-1表示,将所有的点连成的线作为z方向上加速度变化情况如图9。图9示出的是Z轴加速度突变周期曲线,每个正负突变代表用户运动一步,只要计算得到加速度正负突变的次数便可得到用户在打开页面时运动的步数。

可选地,web应用对加速度信息进行数据处理,得到加速度信息所表示的终端的运动数据包括:web应用按照预设周期对加速度信息进行数据处理,得到一个周期内的运动数据;web应用将预设时间段内的多个预设周期的运动数据进行累加,得到预设时间段内终端的运动数据。

人在走路时大致分为下面几种场景,(1)正常走路,手机拿在手上(边走边看、甩手、不甩手);(2)慢步走,手机拿在手上(边走边看、甩手、不甩手);(3)快步走,手机拿在手上(甩手、不甩手、走的很快一般不会看手机)。

上述三种场景都可以通过应用JavaScript中内置的Devicemotion事件对用户动终端的运动情况进行监听并分析其中的规律。由于人在走路的过程中,可能在上述三种场景中切换,例如,在慢步走后加速,就由慢步走切换到快步走。在数据处理过程中,不同走路速度所表现出的加速度变化的曲线也是不同的,如果采用相同的均值滤波和波峰检测,会导致最后的计算结果不准确。为了避免不同曲线采用相同参数进行均值滤波和波峰检测导致的结果不准确,采用周期性计算的方式。即每个周期计算一次步数,在一个周期内认为用户的行走状态是不改变的,再将一段时间内的每个周期内的行走步数进行累加,得到一段时间内总的步数。对每个周期内的加速度变化曲线进行数据处理,得到该周期内的行走步数。

例如,将3秒作为一个周期,在3秒内认为用户的行走的状态保持不变。每3秒对加速度变化曲线做一次数据处理,计算得到3秒内的行走步数。

图11至图13分别示出了用户在正常行走、慢步走和快步走的加速度变化曲线。本实施例通过Devicemotion事件对用户在运动3秒过程中产生的加速度数据进行记录,并以变化波动曲线最为明显的z轴加速度值函数对步数进行计算,可根据波动图像粗略感知三种场景下都存在一个加速度变化周期,且周期大小根据步伐快慢存在差异,为了更好的观测这个周期并计算的到步数,需要对原始加速度变化曲线进行滤波处理。

分别对图11至图13示出的三种场景下的加速度变化曲线进行均值滤波处理后,得到图14至图16所示的滤波后的加速度变化曲线。

依次将图11至图13与图14至图16进行对比,图11至13中z轴加速度曲线中异常波动被消除,使得滤波后的图14至图16所示的曲线更加平滑。通过滤波得到比较平滑的曲线之后,可较为直观的观测到每种情况下的波动曲线和其周期性,而根据运动的特性可知,每个周期指代加速度变化的一个周期,进而可以理解为用户向前步行了一步,故通过对周期个数的检测即可得到用户在特定时间内的步数值。

为了便于对周期进行检测,采用二次波峰检测的方式对整体数据进行计算和处理,选取加速度的加权平均值作为阀值,当加速度值大于此阀值时记为1,小于此阀值时,记为-1,即可得到表征加速度突变的分段函数。对图14至图16所示的滤波后的曲线进行波峰检测后,相应得到图17至图19所示的曲线。波峰检测后的曲线可以看到加速度正负突变,加速度正负突变次数的一半即可视为步数,根据本实施例,可得到3秒时间内上述三种场景下的步数值:正常走路约8步,慢步走约4步,快步走约11步。

如果用户9秒内从正常走路变成慢步走又变成快步走,且每个状态持续3秒钟,那么,9秒内用户总的步数是8+4+11=23步。如果按照成人每步距离为1米算,9秒内该用户行走了23米。如果确定了用户在行走前的位置和用户行走的方向,那么,就能确定用户行走9秒后的位置,即实现了根据用户行走步数确定用户的位置。

可选地,web应用根据运动数据生成与web应用相关的展示数据包括:web应用根据运动数据获取终端的屏幕抖动状态;根据抖动状态生成与web应用相关的展示数据,其中,展示数据用于抵消抖动状态。

由于用户在行走的过程中身体会不规则的运动,身体的运动会导致用户手持的终端晃动,可能会导致用户无法清晰的看到终端上显示的内容。因此,调整屏幕抖动的应用可以获取加速度信息,并根据加速度信息确定用户当前的行走状态,并根据当前行走状态推算下一秒中用户的行走状态。确定了用户的行走状态以及加速度信息,可知用户在行走过程中在x,y,z方向上的位移,进而根据用户的位移调整屏幕上显示的内容。例如,用户在行走过程中向x轴的正向偏移,则调整屏幕上显示的内容向x轴的正向偏移,以适应用户行走过程中身体晃动所带来的终端屏幕内容的晃动,避免了屏幕上显示的内容无法被用户清晰的看到,提高了用户体验。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述数据的展示方法的数据的展示装置,该数据的展示装置主要用于执行本发明实施例上述内容所提供的数据的展示方法,以下对本发明实施例所提供的数据的展示装置做具体介绍:

图20是根据本发明实施例的数据的展示装置的示意图,如图20所示,该数据的展示装置主要包括:

获取单元10,用于通过调用web应用中web页面的JS对象事件来获取终端的加速度信息,其中,web应用安装在终端上,JS对象事件用于获取终端在运动状态下的加速度信息。

加速度信息可以由终端上设置的陀螺仪和加速传感器来获得,陀螺仪可以测量终端旋转和偏斜时的转动角速度,加速传感器可以测量线加速。在无需用户授权的情况下,打开web应用的web页面就可以通过JS对象事件来获取终端内陀螺仪和加速传感器的数据,从而获得终端在x,y,z方向上的加速度变化情况,即获得了加速度信息。

处理单元20,用于对加速度信息进行数据处理,得到加速度信息所表示的终端的运动数据。

对加速度信息进行的数据处理包括均值滤波和峰值检测。终端的运动数据包括持有终端的用户的行走步数、速度和终端的旋转角度和方向等。

第一生成单元30,用于根据运动数据生成与web应用相关的展示数据。

根据web应用所要展示的领域和内容,结合运动数据生成与web应用相关的展示数据。比如,在“健康”应用中生成用户行走步数、速度和行走路线等展示数据;在“游戏”应用中生成用户在游戏场景中的位置、角色的动作和场景随终端角度变化而产生的变化等展示数据;在“图片”或“购物”应用中生成图片随着终端的旋转而旋转的展示数据。

展示单元40,用于显示展示数据。

在web应用上显示生成的展示数据,例如,在上述多个场景中,在“健康”应用中显示用户行走步数、速度和行走路线等展示数据;在“游戏”应用中显示用户在游戏场景中的位置、角色的动作和场景随终端角度变化而产生的变化等展示数据;在“图片”或“购物”应用中显示图片随着终端的旋转而旋转的展示数据。

在本实施例中,由于web应用本身具有JS代码,并可以调用JS对象事件来获取陀螺仪和加速传感器的加速度信息,从而生成与web应用相关的展示数据,并在web应用中展示出来。其中,由于web应用本身的JS对象事件直接获取陀螺仪和加速传感器的加速度信息,不需要web应用再通过授权的接口获取加速度信息,无需用户授权就可以获得加速度信息,进而获得终端的运动数据,解决了由于接口授权问题造成的终端的应用无法获取终端的运动数据的技术问题,达到了无需用户授权就可以获取终端运动数据的技术效果。

可选地,装置还包括:调用单元,用于在web应用对加速度信息进行数据处理,得到加速度信息所表示的终端的运动数据之后,终端系统自带的原生应用调用web页面获取运动数据;第二生成单元,用于使原生应用在后台根据运动数据生成与原生应用相关的展示数据。

原生应用是终端的操作系统自带的应用,原生系统可以调用web页面,同时web页面可以获取运动数据,因此,混合应用中的原生应用调用web页面就可以得到运动数据,也就能根据运动数据生成与原生应用相关的展示数据。对于混合应用来说,混合应用中的原生应用可以调用web应用的web页面,就实现了混合应用获取运动数据。

由上述实施例可知,本实施例可以应用在web应用的场景下,也可以应用在混合应用的场景下,以下分别对这两个场景进行说明。

(一)web应用场景。

本实施例在web场景下可开发出诸多Html5活动页面的互动创新场景和互动玩法,如图4所示的游戏Pokemon GO中,用户在当前页面对话框观测精灵位置,并向精灵运动的过程,可以通过JS对象事件获取加速度信息,并根据加速度信息获取用户的运动步数、运动方向等信息,根据运动步数和运动方向确定用户移动的距离和用户的实时位置,以便在用户移动过程中,准确在图4所示的场景中显示用户的位置。

可选地,生成单元包括:第二获取模块,用于根据运动数据获取用户的运动距离和运动方向;第三获取模块,用于根据终端的GPS定位信息获取用户的地理位置信息;第二生成模块,用于根据运动距离、运动方向和地理位置信息生成web应用上显示的用户的位置。

web应用根据运动数据获取用户的运动距离和运动方向确定出用户的实时位置,同时,还可以将步数和方向等运动信息结合传统的方位信息精准计算出用户前进的距离,并在前进过程中配合GPS信息进行双向校验。结合GPS信息和运动步数和方向信息来计算出用户当前的位置信息,从而修正用户在游戏场景中显示的位置,这样可以修正类似高互动游戏的定位不准确问题,以便用户获得更逼真的互动体验。

(二)混合应用场景。

本实施例通过对用户步数进行记录和实时反馈,可应用于现有类似微信运动等记步运动应用(即混合应用),如图5和图6所示。如图5,显示一段时间内当前用户每天的行走步数,以及在所有好友中的排名。如图6,显示当前用户好友的行走步数、排名和与目标步数的差距等信息。通过原生进程调取本实施例封装的接口从而实现对用户步数的实施统计和更新,且适应于走路,跑步等诸多运动状态,结合其他用户信息和接口信息可以实现对用户身体状况的检测,运动建议和健身方案生成等个性化服务,同时可以衍生出公益捐步等各类特色服务。本实施例封装的接口是web网页封装的接口,无需用户授权就能够被原生应用调用。

例如:根据用户输入的每日运动目标中的走路步数,以及已经计算出的用户已经行走的步数,确定用户还需要行走的步数。或者,根据用户的体重、身高、年龄和性别等信息,生成用户每日需要消耗的能量,根据用户行走、跑步或者其他运动的耗能,确定出用户还需要消耗的能量。并根据需要消耗的能量生成运动的时间、强度和运动类型等健身方案,还可以生成允许食用的食物种类和食物的数量等饮食方案。

例如:为了促进用户绿色出行和锻炼身体,在公益应用中调用web网页来获取用户绿色出行的距离(如公里数),根据公里数生成捐款、捐物或植树造林、老年儿童的关爱等公益方案。

在本实施例中的健身方案、饮食方案和公益方案都可以作为展示数据展示在混合应用中。

下面以运动数据为运动步数为例对本实施例的数据处理进行说明。

可选地,加速度信息包括终端的Z轴加速度变化曲线,处理单元包括:滤波模块,用于对Z轴加速度变化曲线进行均值滤波处理,得到滤波后的Z轴加速度变化曲线;检测模块,用于对滤波后的Z轴加速度变化曲线进行波峰检测,得到Z轴加速度突变周期曲线;确定模块,用于确定Z轴加速度突变周期曲线所表示的运动数据,其中,运动数据包括持有终端的用户运动的步数。

如图7所示,加速度信息包括x,y,z方向上的加速度变化情况并形成三条波动曲线。选取z轴加速度变化情况作为判断步数的变化依据,将波形中每个z方向上加速度值的前后若干个点的均值替代此时的加速度值,经过均值滤波可得到平整光滑的波动曲线如图8,在此基础上进行二次波峰检测,即可得到z方向上加速度变化情况如图9,只要计算得到加速度正负突变的次数便可得到用户在打开web应用的web页面时运动步数的统计。通过本实施例可以在用户打开此页面时,实现类似场景虚拟类的高互动游戏,当用户跳出页面时暂停此步数统计。

可选地,检测模块包括:第一获取子模块,用于获取Z轴加速度变化曲线中目标点的目标加速度值,其中,目标加速度值为以目标点为中点的预设范围内的多个加速度值的加权平均值,目标点为Z轴加速度变化曲线中的任意一点;第一生成子模块,用于根据Z轴加速度变化曲线中每个目标点的目标加速度值生成滤波后的Z轴加速度变化曲线。

为了使最终结果更精确,本实施例利用均值滤波算法将Z轴加速度变化曲线中部分影响到最终结果的数据进行过滤,其基本原理如以下公式:

g(x,y)=1/m∑f(x,y)

其中,x和y分别表示时刻,将时刻x和y区间内的所有z方向上加速度值进行加权计算,得到该时段内加速度的均值,并作为(x+y)/2时刻加速度的值,通过均值滤波,可以有效的消除异常波动对整体造成的影响,并获得较为光滑平整且呈现周期性良好的z方向加速度变化波动图像,如图10所示,滤波前的Z轴加速度变化曲线上,圆圈中的点所表示的数据为异常波动,通过上述公式,可以消除这些异常波动对Z轴加速度变化曲线整体造成的影响,得到图10所示的滤波后的Z轴加速度变化曲线。

可选地,检测模块包括:第二获取子模块,用于获取滤波后的Z轴加速度变化曲线中所有加速度值的加权平均值;阈值子模块,用于将所有加速度值的加权平均值作为阈值;比较子模块,用于对滤波后的Z轴加速度变化曲线中每个加速度值与阈值进行比较;记录子模块,用于将加速度值大于阈值的点记为+1,将加速度值大于阈值的点记为‐1;第二生成子模块,用于根据记录结果生成Z轴加速度突变周期曲线。

对滤波后的Z轴加速度变化曲线进行二次波峰检测,将滤波后的Z轴加速度变化曲线上所有点的均值作为阀值,大于阀值的点用1表示,小于阀值的点用-1表示,将所有的点连成的线作为z方向上加速度变化情况如图9。图9示出的是Z轴加速度突变周期曲线,每个正负突变代表用户运动一步,只要计算得到加速度正负突变的次数便可得到用户在打开页面时运动的步数。

可选地,处理单元包括:处理模块,用于按照预设周期对加速度信息进行数据处理,得到一个周期内的运动数据;累加模块,用于将预设时间段内的多个预设周期的运动数据进行累加,得到预设时间段内终端的运动数据。

人在走路时大致分为下面几种场景,(1)正常走路,手机拿在手上(边走边看、甩手、不甩手);(2)慢步走,手机拿在手上(边走边看、甩手、不甩手);(3)快步走,手机拿在手上(甩手、不甩手、走的很快一般不会看手机)。

上述三种场景都可以通过应用JavaScript中内置的Devicemotion事件对用户动终端的运动情况进行监听并分析其中的规律。由于人在走路的过程中,可能在上述三种场景中切换,例如,在慢步走后加速,就由慢步走切换到快步走。在数据处理过程中,不同走路速度所表现出的加速度变化的曲线也是不同的,如果采用相同的均值滤波和波峰检测,会导致最后的计算结果不准确。为了避免不同曲线采用相同参数进行均值滤波和波峰检测导致的结果不准确,采用周期性计算的方式。即每个周期计算一次步数,在一个周期内认为用户的行走状态是不改变的,再将一段时间内的每个周期内的行走步数进行累加,得到一段时间内总的步数。对每个周期内的加速度变化曲线进行数据处理,得到该周期内的行走步数。

例如,将3秒作为一个周期,在3秒内认为用户的行走的状态保持不变。每3秒对加速度变化曲线做一次数据处理,计算得到3秒内的行走步数。

图11至图13分别示出了用户在正常行走、慢步走和快步走的加速度变化曲线。本实施例通过Devicemotion事件对用户在运动3秒过程中产生的加速度数据进行记录,并以变化波动曲线最为明显的z轴加速度值函数对步数进行计算,可根据波动图像粗略感知三种场景下都存在一个加速度变化周期,且周期大小根据步伐快慢存在差异,为了更好的观测这个周期并计算的到步数,需要对原始加速度变化曲线进行滤波处理。

分别对图11至图13示出的三种场景下的加速度变化曲线进行均值滤波处理后,得到图14至图16所示的滤波后的加速度变化曲线。

依次将图11至图13与图14至图16进行对比,图11至13中z轴加速度曲线中异常波动被消除,使得滤波后的图14至图16所示的曲线更加平滑。通过滤波得到比较平滑的曲线之后,可较为直观的观测到每种情况下的波动曲线和其周期性,而根据运动的特性可知,每个周期指代加速度变化的一个周期,进而可以理解为用户向前步行了一步,故通过对周期个数的检测即可得到用户在特定时间内的步数值。

为了便于对周期进行检测,采用二次波峰检测的方式对整体数据进行计算和处理,选取加速度的加权平均值作为阀值,当加速度值大于此阀值时记为1,小于此阀值时,记为-1,即可得到表征加速度突变的分段函数。对图14至图16所示的滤波后的曲线进行波峰检测后,相应得到图17至图19所示的曲线。波峰检测后的曲线可以看到加速度正负突变,加速度正负突变次数的一半即可视为步数,根据本实施例,可得到3秒时间内上述三种场景下的步数值:正常走路约8步,慢步走约4步,快步走约11步。

如果用户9秒内从正常走路变成慢步走又变成快步走,且每个状态持续3秒钟,那么,9秒内用户总的步数是8+4+11=23步。如果按照成人每步距离为1米算,9秒内该用户行走了23米。如果确定了用户在行走前的位置和用户行走的方向,那么,就能确定用户行走9秒后的位置,即实现了根据用户行走步数确定用户的位置。

可选地,第一生成单元包括:第一获取模块,用于根据运动数据获取终端的屏幕抖动状态;第一生成模块,用于根据抖动状态生成与web应用相关的展示数据,其中,展示数据用于抵消抖动状态。

由于用户在行走的过程中身体会不规则的运动,身体的运动会导致用户手持的终端晃动,可能会导致用户无法清晰的看到终端上显示的内容。因此,调整屏幕抖动的应用可以获取加速度信息,并根据加速度信息确定用户当前的行走状态,并根据当前行走状态推算下一秒中用户的行走状态。确定了用户的行走状态以及加速度信息,可知用户在行走过程中在x,y,z方向上的位移,进而根据用户的位移调整屏幕上显示的内容。例如,用户在行走过程中向x轴的正向偏移,则调整屏幕上显示的内容向x轴的正向偏移,以适应用户行走过程中身体晃动所带来的终端屏幕内容的晃动,避免了屏幕上显示的内容无法被用户清晰的看到,提高了用户体验。

实施例3

根据本发明实施例,还提供了一种用于实施上述数据的展示方法的终端,如图21所示,该终端主要包括处理器2101、摄像头2102、显示器2103、数据接口2104、存储器2105和网络接口2106,其中:

摄像头2102主要用于采集用户头像和环境图片等。

数据接口2104则主要通过数据传输的方式将第三方工具获取到的位置信息或者运动信息等发送给处理器2101。

存储器2105主要用于存储用户输入的个人信息和用户运动数据。

网络接口2106主要用于与服务器进行网络通信,接收服务器的图像或者通过服务器进行互动游戏。

显示器2103主要用于显示运动数据、与应用相关的展示数据等。

处理器2101主要用于执行如下操作:web应用调用web页面的JS对象事件来获取终端的加速度信息,其中,所述web应用安装在所述终端上,所述JS对象事件用于获取所述终端在运动状态下的所述加速度信息;所述web应用对所述加速度信息进行数据处理,得到所述加速度信息所表示的所述终端的运动数据;所述web应用根据所述运动数据生成与所述web应用相关的展示数据;所述web应用上显示所述展示数据。

处理器2101还用于执行如下操作:所述web应用对所述Z轴加速度变化曲线进行均值滤波处理,得到滤波后的Z轴加速度变化曲线;所述web应用对所述滤波后的Z轴加速度变化曲线进行波峰检测,得到Z轴加速度突变周期曲线;所述web应用确定所述Z轴加速度突变周期曲线所表示的所述运动数据,其中,所述运动数据包括持有所述终端的用户运动的步数。

处理器2101还用于执行如下操作:所述web应用对Z轴加速度变化曲线进行均值滤波处理,得到滤波后的Z轴加速度变化曲线包括:所述web应用获取所述Z轴加速度变化曲线中目标点的目标加速度值,其中,所述目标加速度值为以所述目标点为中点的预设范围内的多个加速度值的加权平均值,所述目标点为所述Z轴加速度变化曲线中的任意一点;所述web应用根据所述Z轴加速度变化曲线中每个目标点的所述目标加速度值生成所述滤波后的Z轴加速度变化曲线。

处理器2101还用于执行如下操作:所述web应用获取所述滤波后的Z轴加速度变化曲线中所有加速度值的加权平均值;所述web应用将所述所有加速度值的加权平均值作为阈值;所述web应用对所述滤波后的Z轴加速度变化曲线中每个加速度值与所述阈值进行比较;所述web应用将加速度值大于所述阈值的点记为+1,将加速度值大于所述阈值的点记为‐1;根据记录结果生成Z轴加速度突变周期曲线。

处理器2101还用于执行如下操作:所述web应用按照预设周期对所述加速度信息进行数据处理,得到一个周期内的运动数据;所述web应用将预设时间段内的多个所述预设周期的运动数据进行累加,得到所述预设时间段内所述终端的运动数据。

处理器2101还用于执行如下操作:所述终端系统自带的原生应用调用所述web页面获取所述运动数据;所述原生应用在后台根据所述运动数据生成与所述原生应用相关的展示数据。

处理器2101还用于执行如下操作:所述web应用根据所述运动数据获取所述终端的屏幕抖动状态;所述web应用根据所述抖动状态生成与所述web应用相关的展示数据,其中,所述展示数据用于抵消所述抖动状态。

处理器2101还用于执行如下操作:所述web应用根据所述运动数据获取所述用户的运动距离和运动方向;所述web应用根据所述终端的GPS定位信息获取所述用户的地理位置信息;所述web应用根据所述运动距离、所述运动方向和所述地理位置信息生成所述web应用上显示的所述用户的位置。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于存储本发明实施例的数据的展示方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于移动通信网络、广域网、城域网或局域网的网络中的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

S1,web应用调用web页面的JS对象事件来获取终端的加速度信息,其中,所述web应用安装在所述终端上,所述JS对象事件用于获取所述终端在运动状态下的所述加速度信息;

S2,所述web应用对所述加速度信息进行数据处理,得到所述加速度信息所表示的所述终端的运动数据;

S3,所述web应用根据所述运动数据生成与所述web应用相关的展示数据;

S4,所述web应用上显示所述展示数据。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read‐Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:所述web应用对所述Z轴加速度变化曲线进行均值滤波处理,得到滤波后的Z轴加速度变化曲线;所述web应用对所述滤波后的Z轴加速度变化曲线进行波峰检测,得到Z轴加速度突变周期曲线;所述web应用确定所述Z轴加速度突变周期曲线所表示的所述运动数据,其中,所述运动数据包括持有所述终端的用户运动的步数。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:所述web应用对Z轴加速度变化曲线进行均值滤波处理,得到滤波后的Z轴加速度变化曲线包括:所述web应用获取所述Z轴加速度变化曲线中目标点的目标加速度值,其中,所述目标加速度值为以所述目标点为中点的预设范围内的多个加速度值的加权平均值,所述目标点为所述Z轴加速度变化曲线中的任意一点;所述web应用根据所述Z轴加速度变化曲线中每个目标点的所述目标加速度值生成所述滤波后的Z轴加速度变化曲线。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:所述web应用获取所述滤波后的Z轴加速度变化曲线中所有加速度值的加权平均值;所述web应用将所述所有加速度值的加权平均值作为阈值;所述web应用对所述滤波后的Z轴加速度变化曲线中每个加速度值与所述阈值进行比较;所述web应用将加速度值大于所述阈值的点记为+1,将加速度值大于所述阈值的点记为‐1;根据记录结果生成Z轴加速度突变周期曲线。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:所述web应用按照预设周期对所述加速度信息进行数据处理,得到一个周期内的运动数据;所述web应用将预设时间段内的多个所述预设周期的运动数据进行累加,得到所述预设时间段内所述终端的运动数据。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:所述终端系统自带的原生应用调用所述web页面获取所述运动数据;所述原生应用在后台根据所述运动数据生成与所述原生应用相关的展示数据。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:所述web应用根据所述运动数据获取所述终端的屏幕抖动状态;所述web应用根据所述抖动状态生成与所述web应用相关的展示数据,其中,所述展示数据用于抵消所述抖动状态。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:所述web应用根据所述运动数据获取所述用户的运动距离和运动方向;所述web应用根据所述终端的GPS定位信息获取所述用户的地理位置信息;所述web应用根据所述运动距离、所述运动方向和所述地理位置信息生成所述web应用上显示的所述用户的位置。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1