CN106202113B - 应用于组队运动的信息提供方法和装置 - Google Patents
应用于组队运动的信息提供方法和装置 Download PDFInfo
- Publication number
- CN106202113B CN106202113B CN201510228759.XA CN201510228759A CN106202113B CN 106202113 B CN106202113 B CN 106202113B CN 201510228759 A CN201510228759 A CN 201510228759A CN 106202113 B CN106202113 B CN 106202113B
- Authority
- CN
- China
- Prior art keywords
- team member
- node
- index tree
- submodule
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本公开是关于一种应用于组队运动的信息提供方法和装置,属于计算机技术领域。所述方法包括:获取目标队员的最近一次位置数据,该目标队员是组队运动中的n个队员中的一个;根据最近一次位置数据对已有索引树组进行更新,得到更新后的索引树组;获取目标队员在更新后的索引树组中所属的索引树所对应的小组队员信息;向目标队员提供小组队员信息。本公开解决了相关技术仅向队员提供组队运动中的所有队员的位置数据的问题;采用分组化的多中心分析模式对组队运动中的队员进行位置分析,对不同形态的队伍均有很好的适应性,另外还通过向目标队员提供小组队员信息,达到了向各个队员提供更为有效、准确的信息的效果。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种应用于组队运动的信息提供方法和装置。
背景技术
组队运动是一种常见的集体运动模式。例如,常见的组队运动包括组队骑行、组队跑步、组队攀爬等。
相关技术中,组队运动中的每一个队员可随身携带一台具有定位功能的终端,终端通常以时间等距的方式实时采集队员的位置数据,并将采集得到的位置数据上报给服务器。相应地,服务器整合所有队员的位置数据,并向各个终端发送所有队员的位置数据,以便各个队员及时了解队伍中队员的位置分布情况。
发明内容
本公开实施例提供了一种应用于组队运动的信息提供方法和装置。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种应用于组队运动的信息提供方法,所述方法包括:
获取目标队员的最近一次位置数据,所述目标队员是组队运动中的n个队员中的一个,n≥2;
根据所述最近一次位置数据对已有索引树组进行更新,得到更新后的索引树组;其中,所述索引树组包括按照队员间的距离将所述n个队员聚类得到的至少一棵索引树,每棵索引树对应于一个小组,每棵索引树中的一个节点对应所述小组中的一个队员;
获取所述目标队员在所述更新后的索引树组中所属的索引树所对应的小组队员信息;
向所述目标队员提供所述小组队员信息。
可选地,所述根据所述最近一次位置数据对已有索引树组进行更新,得到更新后的索引树组,包括:
在所述目标队员在所述已有索引树组中所属的索引树k中,根据所述最近一次位置数据从所述目标队员已有的子节点中查找所述目标队员的更新后的子节点,所述更新后的子节点是与所述目标队员之间的距离小于预设关联距离的队员所对应的节点;
根据所述最近一次位置数据,在所述已有索引树组的所有节点中查找所述目标队员的更新后的父节点;
根据所述更新后的子节点和所述更新后的父节点,得到所述更新后的索引树组。
可选地,所述在所述目标队员在所述已有索引树组中所属的索引树k中,根据所述最近一次位置数据从所述目标队员已有的子节点中查找所述目标队员的更新后的子节点,包括:
获取所述目标队员在所述已有索引树组中所属的索引树k中的a个下一层子节点,a≥1;
对于所述a个下一层子节点中的每一个子节点,根据对应于所述子节点的队员的位置数据和所述最近一次位置数据,计算对应于所述子节点的队员与所述目标队员之间的距离;
判断所述距离是否小于所述预设关联距离;
若小于所述预设关联距离,则继续保留对应于所述子节点的队员作为所述目标队员的下一层子节点,并保持所述子节点的所有子节点不变;
若大于所述预设关联距离,则不再保留对应于所述子节点的队员作为所述目标队员的下一层子节点,并为对应于所述子节点的队员重新确定父节点。
可选地,所述根据所述最近一次位置数据,在所述已有索引树组的所有节点中查找所述目标队员的更新后的父节点,包括:
当所述目标队员在所述索引树k中存在父节点p时,判断所述索引树k中是否存在所述目标队员的更新后的父节点;
当所述索引树k中存在所述更新后的父节点时,将所述目标队员挂靠至所述更新后的父节点;
当所述索引树k中不存在所述更新后的父节点或者所述目标队员在所述索引树k中不存在父节点p时,判断所述已有索引树组中除所述索引树k之外的其它索引树中是否存在所述目标队员的更新后的父节点;
当所述其它索引树中存在所述更新后的父节点时,将所述目标队员挂靠至所述更新后的父节点;
当所述其它索引树中不存在所述更新后的父节点时,确定所述目标队员没有所述更新后的父节点。
可选地,所述判断所述索引树k中是否存在所述目标队员的更新后的父节点,包括:
对于所述索引树k中的每一个节点q,计算所述节点q与所述父节点p之间的路径距离Lpq,所述路径距离Lpq等于所述节点q与所述父节点p之间的最短路径中两两相邻的节点间的距离之和;
按所述路径距离Lpq从小到大的顺序依次遍历所述索引树k中的各个节点q;
当遍历得到第一个符合第一预定条件的节点q时,遍历结束,并将所述第一个符合第一预定条件的节点q作为所述目标队员的更新后的父节点;其中,所述第一预定条件是指对应于所述节点q的队员与所述目标队员之间的距离小于所述预设关联距离;
当所述索引树k中不存在符合所述第一预定条件的节点q时,确定所述索引树k中不存在所述目标队员的更新后的父节点。
可选地,所述判断所述已有索引树组中除所述索引树k之外的其它索引树中是否存在所述目标队员的更新后的父节点,包括:
对于所述其它索引树中的每一棵索引树,获取所述索引树中的小组核心队员;
对于每一个小组核心队员,根据所述小组核心队员的位置数据和所述最近一次位置数据,计算所述小组核心队员与所述目标队员之间的距离;
按所述距离从小到大的顺序依次遍历所述其它索引树中的每一棵索引树中的每一个节点s;
当遍历得到第一个符合第二预定条件的节点s时,遍历结束,并将所述第一个符合第二预定条件的节点s作为所述目标队员的更新后的父节点;其中,所述第二预定条件是指对应于所述节点s的队员与所述目标队员之间的距离小于所述预设关联距离;
当所述其它索引树中不存在符合所述第二预定条件的节点s时,确定所述其它索引树中不存在所述更新后的父节点。
可选地,所述获取所述目标队员在所述更新后的索引树组中所属的索引树所对应的小组队员信息,包括:
对于所述目标队员在所述更新后的索引树组中所属的索引树k′中的每一个节点,统计所述节点的下一层子节点的数量;
将所述下一层子节点的数量最多的节点所对应的队员确定为所述索引树k′中的小组核心队员;
至少获取所述小组核心队员的位置数据,作为所述小组队员信息。
可选地,所述方法还包括:
获取所述n个队员的初始位置数据;
根据所述n个队员的初始位置数据,按照队员间的距离将所述n个队员聚类得到所述索引树组。
可选地,所述根据所述n个队员的初始位置数据,按照队员间的距离将所述n个队员聚类得到所述索引树组,包括:
令i=1,从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中;
对所述待检查队列中的每一个队员依次进行检查,从所述未加入索引树的队员中选取符合第三预定条件的队员作为被检查的队员的下一层子节点,并将被选取的队员添加至待检查队列中;其中,所述第三预定条件是指与所述被检查的队员之间的距离小于预设关联距离;
当所述待检查队列中不存在未被检查的队员时,所述第i棵索引树构建完毕;
判断是否存在未加入索引树的队员;
若不存在,则所述索引树组构建完毕;
若存在,则令i=i+1,并再次执行所述从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中的步骤。
可选地,所述方法还包括:
对于所述更新后的索引树组中的每一棵索引树,检测所述索引树中包含的队员的数量是否小于预设数量阈值;
若小于所述预设数量阈值,则将所述索引树中包含的队员确定为离队队员。
可选地,所述方法还包括:
在所述目标队员在所述已有索引树组中所属的索引树k中获取相邻节点,所述相邻节点是指所述目标队员的父节点或者子节点;
对于每一个相邻节点,根据对应于所述相邻节点的队员的位置数据和所述最近一次位置数据,计算对应于所述相邻节点的队员与所述目标队员之间的距离;
当各个所述距离均大于预设距离阈值时,丢弃所述最近一次位置数据。
根据本公开实施例的第二方面,提供了一种应用于组队运动的信息提供装置,所述装置包括:
数据获取模块,被配置为获取目标队员的最近一次位置数据,所述目标队员是组队运动中的n个队员中的一个,n≥2;
索引树更新模块,被配置为根据所述最近一次位置数据对已有索引树组进行更新,得到更新后的索引树组;其中,所述索引树组包括按照队员间的距离将所述n个队员聚类得到的至少一棵索引树,每棵索引树对应于一个小组,每棵索引树中的一个节点对应所述小组中的一个队员;
信息获取模块,被配置为获取所述目标队员在所述更新后的索引树组中所属的索引树所对应的小组队员信息;
信息提供模块,被配置为向所述目标队员提供所述小组队员信息。
可选地,所述索引树更新模块,包括:子节点查找子模块、父节点查找子模块和索引树更新子模块;
所述子节点查找子模块,被配置为在所述目标队员在所述已有索引树组中所属的索引树k中,根据所述最近一次位置数据从所述目标队员已有的子节点中查找所述目标队员的更新后的子节点,所述更新后的子节点是与所述目标队员之间的距离小于预设关联距离的队员所对应的节点;
所述父节点查找子模块,被配置为根据所述最近一次位置数据,在所述已有索引树组的所有节点中查找所述目标队员的更新后的父节点;
所述索引树更新子模块,被配置为根据所述更新后的子节点和所述更新后的父节点,得到所述更新后的索引树组。
可选地,所述子节点查找子模块,包括:子节点获取子模块、距离计算子模块、距离判断子模块、第一处理子模块和第二处理子模块;
所述子节点获取子模块,被配置为获取所述目标队员在所述已有索引树组中所属的索引树k中的a个下一层子节点,a≥1;
所述距离计算子模块,被配置为对于所述a个下一层子节点中的每一个子节点,根据对应于所述子节点的队员的位置数据和所述最近一次位置数据,计算对应于所述子节点的队员与所述目标队员之间的距离;
所述距离判断子模块,被配置为判断所述距离是否小于所述预设关联距离;
所述第一处理子模块,被配置为当小于所述预设关联距离时,继续保留对应于所述子节点的队员作为所述目标队员的下一层子节点,并保持所述子节点的所有子节点不变;
所述第二处理子模块,被配置为当大于所述预设关联距离时,不再保留对应于所述子节点的队员作为所述目标队员的下一层子节点,并为对应于所述子节点的队员重新确定父节点。
可选地,所述父节点查找子模块,包括:第一判断子模块、第一挂靠子模块、第二判断子模块、第二挂靠子模块和确定子模块;
所述第一判断子模块,被配置为当所述目标队员在所述索引树k中存在父节点p时,判断所述索引树k中是否存在所述目标队员的更新后的父节点;
所述第一挂靠子模块,被配置为当所述索引树k中存在所述更新后的父节点时,将所述目标队员挂靠至所述更新后的父节点;
所述第二判断子模块,被配置为当所述索引树k中不存在所述更新后的父节点或者所述目标队员在所述索引树k中不存在父节点p时,判断所述已有索引树组中除所述索引树k之外的其它索引树中是否存在所述目标队员的更新后的父节点;
所述第二挂靠子模块,被配置为当所述其它索引树中存在所述更新后的父节点时,将所述目标队员挂靠至所述更新后的父节点;
所述确定子模块,被配置为当所述其它索引树中不存在所述更新后的父节点时,确定所述目标队员没有所述更新后的父节点。
可选地,所述第一判断子模块,包括:路径计算子模块、第一遍历子模块、第一确定子模块和第二确定子模块;
所述路径计算子模块,被配置为对于所述索引树k中的每一个节点q,计算所述节点q与所述父节点p之间的路径距离Lpq,所述路径距离Lpq等于所述节点q与所述父节点p之间的最短路径中两两相邻的节点间的距离之和;
所述第一遍历子模块,被配置为按所述路径距离Lpq从小到大的顺序依次遍历所述索引树k中的各个节点q;
所述第一确定子模块,被配置为当遍历得到第一个符合第一预定条件的节点q时,遍历结束,并将所述第一个符合第一预定条件的节点q作为所述目标队员的更新后的父节点;其中,所述第一预定条件是指对应于所述节点q的队员与所述目标队员之间的距离小于所述预设关联距离;
所述第二确定子模块,被配置为当所述索引树k中不存在符合所述第一预定条件的节点q时,确定所述索引树k中不存在所述目标队员的更新后的父节点。
可选地,所述第二判断子模块,包括:核心获取子模块、队员距离计算子模块、第二遍历子模块、第三确定子模块和第四确定子模块;
所述核心获取子模块,被配置为对于所述其它索引树中的每一棵索引树,获取所述索引树中的小组核心队员;
所述队员距离计算子模块,被配置为对于每一个小组核心队员,根据所述小组核心队员的位置数据和所述最近一次位置数据,计算所述小组核心队员与所述目标队员之间的距离;
所述第二遍历子模块,被配置为按所述距离从小到大的顺序依次遍历所述其它索引树中的每一棵索引树中的每一个节点s;
所述第三确定子模块,被配置为当遍历得到第一个符合第二预定条件的节点s时,遍历结束,并将所述第一个符合第二预定条件的节点s作为所述目标队员的更新后的父节点;其中,所述第二预定条件是指对应于所述节点s的队员与所述目标队员之间的距离小于所述预设关联距离;
所述第四确定子模块,被配置为当所述其它索引树中不存在符合所述第二预定条件的节点s时,确定所述其它索引树中不存在所述更新后的父节点。
可选地,所述信息获取模块,包括:数量统计子模块、核心确定子模块和信息获取子模块;
所述数量统计子模块,被配置为对于所述目标队员在所述更新后的索引树组中所属的索引树k′中的每一个节点,统计所述节点的下一层子节点的数量;
所述核心确定子模块,被配置为将所述下一层子节点的数量最多的节点所对应的队员确定为所述索引树k′中的小组核心队员;
所述信息获取子模块,被配置为至少获取所述小组核心队员的位置数据,作为所述小组队员信息。
可选地,所述装置还包括:
初始位置获取模块,被配置为获取所述n个队员的初始位置数据;
索引树构建模块,被配置为根据所述n个队员的初始位置数据,按照队员间的距离将所述n个队员聚类得到所述索引树组。
可选地,所述索引树构建模块,包括:选取子模块、检查子模块、构建子模块和判断子模块;
所述选取子模块,被配置为令i=1,从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中;
所述检查子模块,被配置为对所述待检查队列中的每一个队员依次进行检查,从所述未加入索引树的队员中选取符合第三预定条件的队员作为被检查的队员的下一层子节点,并将被选取的队员添加至待检查队列中;其中,所述第三预定条件是指与所述被检查的队员之间的距离小于预设关联距离;
所述构建子模块,被配置为当所述待检查队列中不存在未被检查的队员时,所述第i棵索引树构建完毕;
所述判断子模块,被配置为判断是否存在未加入索引树的队员;
所述构建子模块,还被配置为当不存在时,所述索引树组构建完毕;
所述选取子模块,还被配置为当存在时,则令i=i+1,并再次执行所述从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中的步骤。
可选地,所述装置还包括:
队员数量检测模块,被配置为对于所述更新后的索引树组中的每一棵索引树,检测所述索引树中包含的队员的数量是否小于预设数量阈值;
离队队员确定模块,被配置为当小于所述预设数量阈值时,将所述索引树中包含的队员确定为离队队员。
可选地,所述装置还包括:
相邻节点获取模块,被配置为在所述目标队员在所述已有索引树组中所属的索引树k中获取相邻节点,所述相邻节点是指所述目标队员的父节点或者子节点;
队员距离计算模块,被配置为对于每一个相邻节点,根据对应于所述相邻节点的队员的位置数据和所述最近一次位置数据,计算对应于所述相邻节点的队员与所述目标队员之间的距离;
位置数据丢弃模块,被配置为当各个所述距离均大于预设距离阈值时,丢弃所述最近一次位置数据。
根据本公开实施例的第三方面,提供了一种应用于组队运动的信息提供装置,所述装置包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
获取目标队员的最近一次位置数据,所述目标队员是组队运动中的n个队员中的一个,n≥2;
根据所述最近一次位置数据对已有索引树组进行更新,得到更新后的索引树组;其中,所述索引树组包括按照队员间的距离将所述n个队员聚类得到的至少一棵索引树,每棵索引树对应于一个小组,每棵索引树中的一个节点对应所述小组中的一个队员;
获取所述目标队员在所述更新后的索引树组中所属的索引树所对应的小组队员信息;
向所述目标队员提供所述小组队员信息。
本公开实施例提供的技术方案可以包括以下有益效果:
通过按照队员间的距离将组队运动中的队员进行聚类分组,在获取到目标队员的最近一次位置数据后,对各个小组进行更新,然后向目标队员提供其所属小组的小组队员信息;解决了相关技术仅向队员提供组队运动中的所有队员的位置数据的问题;采用分组化的多中心分析模式对组队运动中的队员进行位置分析,对不同形态的队伍均有很好的适应性,另外还通过向目标队员提供小组队员信息,达到了向各个队员提供更为有效、准确的信息的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种实施环境的示意图;
图2是根据一示例性实施例示出的一种应用于组队运动的信息提供方法的流程图;
图3A是根据另一示例性实施例示出的一种应用于组队运动的信息提供方法的流程图;
图3B是一示例性实施例涉及的队员的初始位置分布情况的示意图;
图3C是一示例性实施例涉及的索引树构建过程的示意图;
图3D是一示例性实施例涉及的步骤304的流程图;
图3E是一示例性实施例涉及的步骤305的流程图;
图3F是一示例性实施例涉及的步骤307的流程图;
图4是根据一示例性实施例示出的一种应用于组队运动的信息提供装置的框图;
图5是根据另一示例性实施例示出的一种应用于组队运动的信息提供装置的框图;
图6是根据一示例性实施例示出的一种装置的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种实施环境的示意图,该实施环境可以包括多个终端120和服务器140。其中:
终端120可以是任何具备定位功能的电子设备。例如,终端120可以是诸如手机、平板电脑、电子书阅读器、个人数字助理之类的移动终端设备;或者,终端120也可以是诸如智能手环、智能手表、智能眼镜、智能头盔之类的可穿戴设备,等等。
终端120与服务器140之间通过无线网络相连。
服务器140可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。
在组队运动的场景下,各个队员通过自身携带的终端120采集自身的位置数据,各个终端120将采集得到的位置数据发送给服务器140,服务器140对各个终端120发送的位置数据进行分析和处理。
图2是根据一示例性实施例示出的一种应用于组队运动的信息提供方法的流程图。该信息提供方法可应用于图1所示实施环境中的服务器140中。该信息提供方法可以包括如下几个步骤:
在步骤202中,获取目标队员的最近一次位置数据,该目标队员是组队运动中的n个队员中的一个,n≥2。
在步骤204中,根据最近一次位置数据对已有索引树组进行更新,得到更新后的索引树组;其中,索引树组包括按照队员间的距离将上述n个队员聚类得到的至少一棵索引树,每棵索引树对应于一个小组,每棵索引树中的一个节点对应小组中的一个队员。
在步骤206中,获取目标队员在更新后的索引树组中所属的索引树所对应的小组队员信息。
在步骤208中,向目标队员提供小组队员信息。
综上所述,本实施例提供的信息提供方法,通过按照队员间的距离将组队运动中的队员进行聚类分组,在获取到目标队员的最近一次位置数据后,对各个小组进行更新,然后向目标队员提供其所属小组的小组队员信息;解决了相关技术仅向队员提供组队运动中的所有队员的位置数据的问题;采用分组化的多中心分析模式对组队运动中的队员进行位置分析,对不同形态的队伍均有很好的适应性,另外还通过向目标队员提供小组队员信息,达到了向各个队员提供更为有效、准确的信息的效果。
图3A是根据另一示例性实施例示出的一种应用于组队运动的信息提供方法的流程图。该信息提供方法可应用于图1所示实施环境中的服务器140中。该信息提供方法可以包括如下几个步骤:
在步骤301中,获取组队运动中的n个队员的初始位置数据,n≥2。
组队运动中的队员通过自身携带的终端采集自身的位置数据。例如,终端可设置有GPS(Global Positioning System,全球定位系统)传感器,GPS传感器每隔预定时间间隔(如5秒)采集一次位置数据。其中,位置数据可包含经度值和纬度值。之后,终端向服务器上报队员的位置信息,该位置信息中包括位置数据和队员标识。其中,队员标识用于指示位置数据所对应的队员。可选地,位置信息中还可包括位置数据所对应的时间戳,该时间戳用于表示采集位置数据的时刻。例如,上述n个队员中的第i个队员向服务器上报的位置信息依次为:(useri,time1,lat1,lng1)、(useri,time2,lat2,lng2)、(useri,time3,lat3,lng3),以此类推。其中,useri为第i个队员的队员标识,time为时间戳,lat为纬度值,lng为经度值。相应地,服务器可构建位置更新队列。服务器按照从各个终端接收各个位置信息的接收先后顺序依次将各个位置信息存储于位置更新队列中。
当服务器完整接收到所有n个队员的位置数据时,获取各个队员的最近一次位置数据作为n个队员的初始位置数据,并触发索引树构建流程。
在步骤302中,根据n个队员的初始位置数据,按照队员间的距离将该n个队员聚类得到索引树组。
其中,每棵索引树对应于一个小组,每棵索引树中的一个节点对应小组中的一个队员。
在一种可能的实施方式中,本步骤可以包括如下几个子步骤:
1)令i=1,从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中。
首先构建第1棵索引树。服务器从未加入索引树的队员中选取1个队员作为第1棵索引树的第1层子节点。其中,队员的选取方式可以是随机选取,也可以按照队员标识按序选取,或者还可以指定选取(如选取队长),本实施例对此不作限定。
结合参考图3B和图3C,假设一次组队运动中的队员数量n=12,该12个队员的初始位置分布情况如图3B所示。如图3C所示,其示出了索引树的构建过程。初始化时,全部12个队员均未加入索引树,如图3C所示,服务器选取队员1作为第1棵索引树的第一层节点(也即根节点),并将该队员1添加至待检查队列中。
2)对待检查队列中的每一个队员依次进行检查,从未加入索引树的队员中选取符合第三预定条件的队员作为被检查的队员的下一层子节点,并将被选取的队员添加至待检查队列中。
其中,第三预定条件是指与被检查的队员之间的距离小于预设关联距离。在本实施例中,采用贪婪策略的方式确定队员的下一层子节点。
如图3C所示,服务器对队员1进行检查,从未加入索引树的队员中选取与队员1之间的距离小于预设关联距离的队员(如队员4和队员10),作为该队员1的下一层子节点,并将队员4和队员10添加至待检查队列中。在待检查队列中仍然存在未被检查的队员时,服务器重复执行该步骤2)。如图3C所示,服务器对队员4进行检查,从未加入索引树的队员中选取与队员4之间的距离小于预设关联距离的队员(如队员3和队员11),作为该队员4的下一层子节点,并将队员3和队员11添加至待检查队列中。之后,服务器对队员10进行检查,队员10不存在满足上述第三预定条件的队员。之后,服务器对队员3进行检查,选取满足上述第三预定条件的队员7作为队员3的下一层子节点。之后,服务器对队员11进行检查,选取满足上述第三预定条件的队员5作为队员11的下一层子节点。之后,服务器对队员7进行检查,队员7不存在满足上述第三预定条件的队员。之后,服务器对队员5进行检查,队员5不存在满足上述第三预定条件的队员。
3)当待检查队列中不存在未被检查的队员时,第i棵索引树构建完毕。
结合参考图3C,当服务器对队员5检查完毕后,待检查队列为空,待检查队列中不存在未被检查的队员,第1棵索引树构建完毕。
4)判断是否存在未加入索引树的队员。
在第1棵索引树构建完毕后,服务器判断是否存在未加入索引树的队员。
5)若不存在,则索引树组构建完毕。
6)若存在,则令i=i+1,并再次执行上述从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中的步骤。
若还存在未加入索引树的队员,则重复上述步骤1)至步骤5)的过程,构建第2棵索引树,甚至更多。当不存在未加入索引树的队员时,全部索引树构建完毕。
结合参考图3C,服务器在完成构建索引树1之后,检测发现还存在未加入索引树的队员(包括队员2、队员6、队员8、队员9和队员12),则服务器重复与构建索引树1相同的流程开始构建索引树2。之后,服务器构建索引树3。服务器在完成构建索引树3之后,检测发现不存在未加入索引树的队员,则全部索引树构建完毕。
在组队运动过程中,各个终端向服务器实时上报最新的位置信息。相应地,服务器根据位置信息不断更新索引树组。其中,索引树组包括至少一棵索引树。
在步骤303中,获取目标队员的最近一次位置数据,该目标队员是组队运动中的n个队员中的一个。
服务器从位置更新队列中依次读取位置信息。服务器获取目标队员的最近一次位置数据后,通过下述步骤304至步骤306对已有的索引树组进行更新。
在步骤304中,在目标队员在已有索引树组中所属的索引树k中,根据最近一次位置数据从目标队员已有的子节点中查找目标队员的更新后的子节点。
其中,更新后的子节点是与目标队员之间的距离小于预设关联距离的队员所对应的节点。
如图3D所示,本步骤可以包括如下几个子步骤:
在步骤304a中,获取目标队员在已有索引树组中所属的索引树k中的a个下一层子节点,a≥1。
结合参考图3C,假设目标队员为队员1,服务器获取队员1在索引树1中的下一层子节点,也即队员4和队员10。
在步骤304b中,对于a个下一层子节点中的每一个子节点,根据对应于子节点的队员的位置数据和最近一次位置数据,计算对应于子节点的队员与目标队员之间的距离。
例如,服务器根据队员1的最近一次位置数据,以及队员4和队员10的位置数据,分别计算队员1与队员4之间的距离以及队员1与队员10之间的距离。
在步骤304c中,判断距离是否小于预设关联距离。
若是,则执行下述步骤304d;否则,执行下述步骤304e。
在步骤304d中,继续保留对应于子节点的队员作为目标队员的下一层子节点,并保持子节点的所有子节点不变。
例如,当队员1与队员4之间的距离小于预设关联距离时,服务器继续保留队员4作为队员1的下一层子节点,并保持队员4的所有子节点不变。
在步骤304e中,不再保留对应于子节点的队员作为目标队员的下一层子节点,并为对应于子节点的队员重新确定父节点。
例如,当队员1与队员4之间的距离大于预设关联距离时,服务器不再保留队员4作为队员1的下一层子节点,并为队员4重新确定父节点。其中,确定父节点的过程与下述步骤305中介绍的为目标队员查找更新后的父节点的过程相同,参见下述步骤305中的介绍和说明。
在步骤305中,根据最近一次位置数据,在已有索引树组的所有节点中查找目标队员的更新后的父节点。
如图3E所示,本步骤可以包括如下几个子步骤:
在步骤305a中,判断目标队员在索引树k中是否存在父节点p。
服务器首先判断目标队员在已有索引树组中所属的索引树k中是否存在父节点p。若是,则执行步骤305b;否则,执行步骤305c。
结合参考图3C,假设目标队员为队员1,服务器判断队员1在索引树1中是否存在父节点。如图3C所示,队员1在索引树1中不存在父节点,则服务器执行步骤305c。再假设目标队员为队员4,服务器判断队员4在索引树1中是否存在父节点。如图3C所示,队员4在索引树1中存在父节点(队员1),则服务器执行步骤305b。
在步骤305b中,判断索引树k中是否存在目标队员的更新后的父节点。
当索引树k中存在目标队员的更新后的父节点时,服务器优先从索引树k中查找目标队员的更新后的父节点。
在一种可能的实施方式中,步骤305b可包括如下几个子步骤:
1)对于索引树k中的每一个节点q,计算节点q与父节点p之间的路径距离Lpq。
其中,路径距离Lpq等于节点q与父节点p之间的最短路径中两两相邻的节点间的距离之和。
以图3C中索引树1为例,假设目标队员为队员4,其在索引树1中存在父节点(队员1)。服务器计算索引树1中的每一个节点与队员1之间的路径距离。例如:队员1与队员1之间的路径距离L11=0;队员10与队员1之间的路径距离L101=S101,S101表示队员10与队员1之间的地理距离;队员7与队员1之间的路径距离L71=S73+S34+S41,等等。
2)按路径距离Lpq从小到大的顺序依次遍历索引树k中的各个节点q。
服务器在计算出索引树k中的每一个节点q与父节点p之间的路径距离Lpq之后,按从小到大的顺序对各个节点q进行排序,确定遍历次序。
可选地,当多个节点对应的路径距离相等时,可随机确定该多个节点的遍历顺序,或者也可按照队员标识确定该多个节点的遍历顺序。
仍然以图3C中目标队员为队员4为例,索引树1中的各个队员按路径距离Lpq从小到大的顺序得到的排序结果为:队员1、队员10、队员3、队员11、队员5和队员7。
3)当遍历得到第一个符合第一预定条件的节点q时,遍历结束,并将第一个符合第一预定条件的节点q作为目标队员的更新后的父节点。
其中,第一预定条件是指对应于节点q的队员与目标队员之间的距离小于预设关联距离。
服务器依据排序结果依次遍历索引树k中的各个节点q,当发现存在第一个与目标队员之间的距离小于预设关联距离的队员时,停止遍历过程,并将该队员作为目标队员的更新后的父节点。
仍然以图3C中目标队员为队员4为例,按照上述确定的遍历次序,首先根据队员4的最近一次位置数据和队员1的位置数据计算队员4与队员1之间的距离;若上述距离小于预设关联距离,则将队员1作为队员4的更新后的父节点;若上述距离大于预设关联距离,则根据队员4的最近一次位置数据和队员10的位置数据计算队员4与队员10之间的距离,以此类推。
4)当索引树k中不存在符合第一预定条件的节点q时,确定索引树k中不存在目标队员的更新后的父节点。
当索引树k中存在目标队员的更新后的父节点时,服务器执行下述步骤305d;否则,服务器执行下述步骤305c。
在步骤305c中,判断已有索引树组中除索引树k之外的其它索引树中是否存在目标队员的更新后的父节点。
当索引树k中不存在目标队员的更新后的父节点时,或者当目标队员在索引树k中不存在父节点p时,服务器从除索引树k之外的其它索引树中查找目标队员的更新后的父节点。
在一种可能的实施方式中,步骤305c可包括如下几个子步骤:
1)对于其它索引树中的每一棵索引树,获取索引树中的小组核心队员。
其中,小组核心队员是指一棵索引树中,具有下一层子节点的数量最多的队员。例如,在图3C中,索引树3中的小组核心队员为队员6。
可选地,当在一棵索引树中,具有下一层子节点的数量最多的队员为多个时,可从该多个队员中随机选取一个队员为小组核心队员,或者也可按照队员标识从该多个队员中选取一个队员为小组核心队员。
2)对于每一个小组核心队员,根据小组核心队员的位置数据和最近一次位置数据,计算小组核心队员与目标队员之间的距离。
仍然以图3C中目标队员为队员4为例,假设在索引树1中未找到队员4的更新后的父节点,则从索引树2和索引树3中查找队员4的更新后的父节点。索引树2中的小组核心队员为队员2,索引树3中的小组核心队员为队员6。服务器根据队员4的最近一次位置数据和队员2的位置数据计算队员4与队员2之间的距离,根据队员4的最近一次位置数据和队员6的位置数据计算队员4与队员6之间的距离。
3)按距离从小到大的顺序依次遍历其它索引树中的每一棵索引树中的每一个节点s。
服务器在计算出目标队员与各个小组核心队员之间的距离之后,按从小到大的顺序对各棵索引树进行排序,确定各棵索引树的遍历次序。
例如,当队员4与队员2之间的距离大于队员4与队员6之间的距离时,服务器首先遍历索引树3中的每一个节点s,在索引树3中不存在队员4的更新后的父节点的情况下,再按序遍历索引树2。
另外,对于一棵索引树中的多个节点的遍历顺序,可采用深度优先的方式进行确定。
4)当遍历得到第一个符合第二预定条件的节点s时,遍历结束,并将第一个符合第二预定条件的节点s作为目标队员的更新后的父节点。
其中,第二预定条件是指对应于节点s的队员与目标队员之间的距离小于预设关联距离。
仍然以图3C中目标队员为队员4为例,按照上述确定的遍历次序,首先根据队员4的最近一次位置数据和队员6的位置数据计算队员4与队员6之间的距离;若上述距离小于预设关联距离,则将队员6作为队员4的更新后的父节点;若上述距离大于预设关联距离,则根据队员4的最近一次位置数据和队员8的位置数据计算队员4与队员8之间的距离,以此类推。
5)当其它索引树中不存在符合第二预定条件的节点s时,确定其它索引树中不存在更新后的父节点。
在步骤305d中,将目标队员挂靠至更新后的父节点。
当查找到目标队员的更新后的父节点时,服务器将目标队员挂靠至更新后的父节点。
在步骤305e中,确定目标队员没有更新后的父节点。
当未查找到目标队员的更新后的父节点时,服务器确定目标队员没有更新后的父节点。也即,目标队员为更新后的索引树组中的一棵索引树的根节点。
在步骤306中,根据更新后的子节点和更新后的父节点,得到更新后的索引树组。
服务器在确定目标队员的更新后的子节点和更新后的父节点之后,得到更新后的索引树组。更新后的索引树组包括至少一棵索引树,每棵索引树对应于一个小组,每棵索引树中的一个节点对应小组中的一个队员。
在步骤307中,获取目标队员在更新后的索引树组中所属的索引树所对应的小组队员信息。
服务器获取目标队员在更新后的索引树组中所属的索引树所对应的小组队员信息。其中,小组队员信息是指目标队员所属的更新后的小组中的队员相关信息。
在一种可能的实施方式中,如图3F所示,本步骤可以包括如下几个子步骤:
在步骤307a中,对于目标队员在更新后的索引树组中所属的索引树k′中的每一个节点,统计节点的下一层子节点的数量。
在步骤307b中,将下一层子节点的数量最多的节点所对应的队员确定为索引树k′中的小组核心队员。
在步骤307c中,至少获取小组核心队员的位置数据,作为小组队员信息。
服务器获取目标队员在更新后的索引树组中所属的索引树k′中的小组核心队员的位置数据,将该小组核心队员的位置数据作为小组队员信息。
可选地,小组队员信息中还可包括索引树k′中的小组核心队员的队员信息、目标队员在索引树k′中的父节点和/或子节点所对应的队员(也即与目标队员临近的队员)的位置数据和/或队员信息,更新后的索引树组中每棵索引树中的小组核心队员的位置数据和/或队员信息,等等。在实际应用中,可结合实际需求确定小组队员信息中所包含的内容,本实施例对此不作限定。
在步骤308中,向目标队员提供小组队员信息。
服务器获取小组队员信息之后,向目标队员所使用的终端发送该小组队员信息。
综上所述,本实施例提供的信息提供方法,通过按照队员间的距离将组队运动中的队员进行聚类分组,在获取到目标队员的最近一次位置数据后,对各个小组进行更新,然后向目标队员提供其所属小组的小组队员信息;解决了相关技术仅向队员提供组队运动中的所有队员的位置数据的问题;采用分组化的多中心分析模式对组队运动中的队员进行位置分析,对不同形态的队伍均有很好的适应性,另外还通过向目标队员提供小组队员信息,达到了向各个队员提供更为有效、准确的信息的效果。
另外,本实施例还提供了一种简单高效的索引树更新算法,以快速地对已有索引树组进行更新,并确定目标队员所属的更新后的索引树。
另外,与一些相关技术中直接依据与某一特定队员(如领队)之间的距离对组队运动中的队员进行位置分析相比,本实施例在对组队运动中的队员进行小组构建和更新时,并没有以某一特定的队员作为参照点,使得即使有队员掉线,也不会影响到小组的构建和更新,确保整个系统仍然能够正常运行。
需要补充说明的一点是:服务器在得到更新后的索引树组之后,还可执行如下步骤:
第一,对于更新后的索引树组中的每一棵索引树,检测索引树中包含的队员的数量是否小于预设数量阈值;
第二,若小于预设数量阈值,则将索引树中包含的队员确定为离队队员。
当索引树中的队员数量小于预设数量阈值时,服务器将该索引树中的队员确定为离队队员。服务器可向离队队员发出离队提醒,以指示离队队员尽快归队。服务器也可向其他队员提供离队队员的相关信息,如队员信息和位置数据等,以使得队伍中的其他队员及时了解离队队员的情况。
与一些相关技术中将队尾的队员判定为离队队员相比,上述判定离队队员的方式更为准确、合理。
另外,可选地,当服务器超过预定时长未接收到某一队员上报的位置数据时,服务器可判定该成员为离线队员。服务器可向其他队员提供离线队员的相关信息,如队员信息和最近一次位置数据等,以使得队伍中的其他队员及时了解离线队员的情况。
还需要补充说明的一点是:服务器在获取目标队员的最近一次位置数据之后,还可执行如下步骤:
第一,在目标队员在已有索引树组中所属的索引树k中获取相邻节点,该相邻节点是指目标队员的父节点或者子节点;
第二,对于每一个相邻节点,根据对应于相邻节点的队员的位置数据和最近一次位置数据,计算对应于相邻节点的队员与目标队员之间的距离;
第三,当各个距离均大于预设距离阈值时,丢弃最近一次位置数据。
服务器通过上述步骤对异常的位置数据进行识别和剔除,避免异常的位置数据影响到对组队情况的正确分析,提高系统的稳定性和处理准确度。
还需要补充说明的一点是:上述实施例仅以服务器为执行主体进行举例说明。在其它可能的实施方式中,上述方法的执行主体也可以是终端,终端根据自身采集的位置数据和从其它终端接收的位置数据对索引树组进行构建和更新,并向队员提供小组队员信息。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图4是根据一示例性实施例示出的一种应用于组队运动的信息提供装置的框图。该信息提供装置可应用于图1所示实施环境的服务器140中。该信息提供装置可以包括:数据获取模块410、索引树更新模块420、信息获取模块430和信息提供模块440。
数据获取模块410,被配置为获取目标队员的最近一次位置数据,该目标队员是组队运动中的n个队员中的一个,n≥2。
索引树更新模块420,被配置为根据上述最近一次位置数据对已有索引树组进行更新,得到更新后的索引树组;其中,索引树组包括按照队员间的距离将n个队员聚类得到的至少一棵索引树,每棵索引树对应于一个小组,每棵索引树中的一个节点对应小组中的一个队员。
信息获取模块430,被配置为获取目标队员在更新后的索引树组中所属的索引树所对应的小组队员信息。
信息提供模块440,被配置为向目标队员提供小组队员信息。
综上所述,本实施例提供的信息提供装置,通过按照队员间的距离将组队运动中的队员进行聚类分组,在获取到目标队员的最近一次位置数据后,对各个小组进行更新,然后向目标队员提供其所属小组的小组队员信息;解决了相关技术仅向队员提供组队运动中的所有队员的位置数据的问题;采用分组化的多中心分析模式对组队运动中的队员进行位置分析,对不同形态的队伍均有很好的适应性,另外还通过向目标队员提供小组队员信息,达到了向各个队员提供更为有效、准确的信息的效果。
图5是根据另一示例性实施例示出的一种应用于组队运动的信息提供装置的框图。该信息提供装置可应用于图1所示实施环境的服务器140中。该信息提供装置可以包括:数据获取模块410、索引树更新模块420、信息获取模块430和信息提供模块440。
数据获取模块410,被配置为获取目标队员的最近一次位置数据,该目标队员是组队运动中的n个队员中的一个,n≥2。
索引树更新模块420,被配置为根据上述最近一次位置数据对已有索引树组进行更新,得到更新后的索引树组;其中,索引树组包括按照队员间的距离将n个队员聚类得到的至少一棵索引树,每棵索引树对应于一个小组,每棵索引树中的一个节点对应小组中的一个队员。
信息获取模块430,被配置为获取目标队员在更新后的索引树组中所属的索引树所对应的小组队员信息。
信息提供模块440,被配置为向目标队员提供小组队员信息。
可选地,索引树更新模块420,包括:子节点查找子模块420a、父节点查找子模块420b和索引树更新子模块420c。
子节点查找子模块420a,被配置为在目标队员在已有索引树组中所属的索引树k中,根据最近一次位置数据从目标队员已有的子节点中查找目标队员的更新后的子节点,该更新后的子节点是与目标队员之间的距离小于预设关联距离的队员所对应的节点。
父节点查找子模块420b,被配置为根据最近一次位置数据,在已有索引树组的所有节点中查找目标队员的更新后的父节点。
索引树更新子模块420c,被配置为根据更新后的子节点和更新后的父节点,得到更新后的索引树组。
可选地,子节点查找子模块420a,包括:子节点获取子模块420a1、距离计算子模块420a2、距离判断子模块420a3、第一处理子模块420a4和第二处理子模块420a5。
子节点获取子模块420a1,被配置为获取目标队员在已有索引树组中所属的索引树k中的a个下一层子节点,a≥1。
距离计算子模块420a2,被配置为对于a个下一层子节点中的每一个子节点,根据对应于子节点的队员的位置数据和最近一次位置数据,计算对应于子节点的队员与目标队员之间的距离。
距离判断子模块420a3,被配置为判断上述距离是否小于预设关联距离。
第一处理子模块420a4,被配置为当小于预设关联距离时,继续保留对应于子节点的队员作为目标队员的下一层子节点,并保持子节点的所有子节点不变。
第二处理子模块420a5,被配置为当大于预设关联距离时,不再保留对应于子节点的队员作为目标队员的下一层子节点,并为对应于子节点的队员重新确定父节点。
可选地,父节点查找子模块420b,包括:第一判断子模块420b1、第一挂靠子模块420b2、第二判断子模块420b3、第二挂靠子模块420b4和确定子模块420b5。
第一判断子模块420b1,被配置为当目标队员在索引树k中存在父节点p时,判断索引树k中是否存在目标队员的更新后的父节点。
第一挂靠子模块420b2,被配置为当索引树k中存在更新后的父节点时,将目标队员挂靠至更新后的父节点。
第二判断子模块420b3,被配置为当索引树k中不存在更新后的父节点或者目标队员在索引树k中不存在父节点p时,判断已有索引树组中除索引树k之外的其它索引树中是否存在目标队员的更新后的父节点。
第二挂靠子模块420b4,被配置为当其它索引树中存在更新后的父节点时,将目标队员挂靠至更新后的父节点。
确定子模块420b5,被配置为当其它索引树中不存在更新后的父节点时,确定目标队员没有更新后的父节点。
可选地,第一判断子模块420b1,包括:路径计算子模块420b11、第一遍历子模块420b12、第一确定子模块420b13和第二确定子模块420b14。
路径计算子模块420b11,被配置为对于索引树k中的每一个节点q,计算节点q与父节点p之间的路径距离Lpq,路径距离Lpq等于节点q与父节点p之间的最短路径中两两相邻的节点间的距离之和。
第一遍历子模块420b12,被配置为按路径距离Lpq从小到大的顺序依次遍历索引树k中的各个节点q。
第一确定子模块420b13,被配置为当遍历得到第一个符合第一预定条件的节点q时,遍历结束,并将第一个符合第一预定条件的节点q作为目标队员的更新后的父节点;其中,第一预定条件是指对应于节点q的队员与目标队员之间的距离小于预设关联距离。
第二确定子模块420b14,被配置为当索引树k中不存在符合第一预定条件的节点q时,确定索引树k中不存在目标队员的更新后的父节点。
可选地,第二判断子模块420b3,包括:核心获取子模块420b31、队员距离计算子模块420b32、第二遍历子模块420b33、第三确定子模块420b34和第四确定子模块420b35。
核心获取子模块420b31,被配置为对于其它索引树中的每一棵索引树,获取索引树中的小组核心队员。
队员距离计算子模块420b32,被配置为对于每一个小组核心队员,根据小组核心队员的位置数据和最近一次位置数据,计算小组核心队员与目标队员之间的距离。
第二遍历子模块420b33,被配置为按距离从小到大的顺序依次遍历其它索引树中的每一棵索引树中的每一个节点s。
第三确定子模块420b34,被配置为当遍历得到第一个符合第二预定条件的节点s时,遍历结束,并将第一个符合第二预定条件的节点s作为目标队员的更新后的父节点;其中,第二预定条件是指对应于节点s的队员与目标队员之间的距离小于预设关联距离。
第四确定子模块420b35,被配置为当其它索引树中不存在符合第二预定条件的节点s时,确定其它索引树中不存在更新后的父节点。
可选地,信息获取模块430,包括:数量统计子模块430a、核心确定子模块430b和信息获取子模块430c。
数量统计子模块430a,被配置为对于目标队员在更新后的索引树组中所属的索引树k′中的每一个节点,统计节点的下一层子节点的数量。
核心确定子模块430b,被配置为将下一层子节点的数量最多的节点所对应的队员确定为索引树k′中的小组核心队员。
信息获取子模块430c,被配置为至少获取小组核心队员的位置数据,作为小组队员信息。
可选地,该装置还包括:初始位置获取模块402和索引树构建模块404。
初始位置获取模块402,被配置为获取n个队员的初始位置数据。
索引树构建模块404,被配置为根据n个队员的初始位置数据,按照队员间的距离将n个队员聚类得到索引树组。
可选地,索引树构建模块404,包括:选取子模块404a、检查子模块404b、构建子模块404c和判断子模块404d。
选取子模块404a,被配置为令i=1,从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中。
检查子模块404b,被配置为对待检查队列中的每一个队员依次进行检查,从未加入索引树的队员中选取符合第三预定条件的队员作为被检查的队员的下一层子节点,并将被选取的队员添加至待检查队列中;其中,第三预定条件是指与被检查的队员之间的距离小于预设关联距离。
构建子模块404c,被配置为当待检查队列中不存在未被检查的队员时,第i棵索引树构建完毕。
判断子模块404d,被配置为判断是否存在未加入索引树的队员。
构建子模块404c,还被配置为当不存在时,索引树组构建完毕。
选取子模块404a,还被配置为当存在时,则令i=i+1,并再次执行上述从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中的步骤。
可选地,该装置还包括:队员数量检测模块422和离队队员确定模块424。
队员数量检测模块422,被配置为对于更新后的索引树组中的每一棵索引树,检测索引树中包含的队员的数量是否小于预设数量阈值;
离队队员确定模块424,被配置为当小于预设数量阈值时,将索引树中包含的队员确定为离队队员。
可选地,该装置还包括:相邻节点获取模块412、队员距离计算模块414和位置数据丢弃模块416。
相邻节点获取模块412,被配置为在目标队员在已有索引树组中所属的索引树k中获取相邻节点,相邻节点是指目标队员的父节点或者子节点。
队员距离计算模块414,被配置为对于每一个相邻节点,根据对应于相邻节点的队员的位置数据和最近一次位置数据,计算对应于相邻节点的队员与目标队员之间的距离。
位置数据丢弃模块416,被配置为当各个距离均大于预设距离阈值时,丢弃最近一次位置数据。
综上所述,本实施例提供的信息提供装置,通过按照队员间的距离将组队运动中的队员进行聚类分组,在获取到目标队员的最近一次位置数据后,对各个小组进行更新,然后向目标队员提供其所属小组的小组队员信息;解决了相关技术仅向队员提供组队运动中的所有队员的位置数据的问题;采用分组化的多中心分析模式对组队运动中的队员进行位置分析,对不同形态的队伍均有很好的适应性,另外还通过向目标队员提供小组队员信息,达到了向各个队员提供更为有效、准确的信息的效果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种装置600的框图。例如,装置600可以被提供为一服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理部件622执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述图2或图3A所示实施例提供的应用于组队运动的信息提供方法。
装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(I/O)接口658。装置600可以操作基于存储在存储器632的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (22)
1.一种应用于组队运动的信息提供方法,其特征在于,所述方法包括:
获取目标队员的最近一次位置数据,所述目标队员是组队运动中的n个队员中的一个,n≥2;
在所述目标队员在已有索引树组中所属的索引树k中获取相邻节点,所述相邻节点是指所述目标队员的父节点或者子节点;
对于每一个相邻节点,根据对应于所述相邻节点的队员的位置数据和所述最近一次位置数据,计算对应于所述相邻节点的队员与所述目标队员之间的距离;
当存在至少一个所述距离小于或等于预设距离阈值时,根据所述最近一次位置数据对所述已有索引树组进行更新,得到更新后的索引树组;其中,所述索引树组包括按照队员间的距离将所述n个队员聚类得到的至少一棵索引树,每棵索引树对应于一个小组,每棵索引树中的一个节点对应所述小组中的一个队员;
获取所述目标队员在所述更新后的索引树组中所属的索引树所对应的小组队员信息;
向所述目标队员提供所述小组队员信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述最近一次位置数据对已有索引树组进行更新,得到更新后的索引树组,包括:
在所述目标队员在所述已有索引树组中所属的索引树k中,根据所述最近一次位置数据从所述目标队员已有的子节点中查找所述目标队员的更新后的子节点,所述更新后的子节点是与所述目标队员之间的距离小于预设关联距离的队员所对应的节点;
根据所述最近一次位置数据,在所述已有索引树组的所有节点中查找所述目标队员的更新后的父节点;
根据所述更新后的子节点和所述更新后的父节点,得到所述更新后的索引树组。
3.根据权利要求2所述的方法,其特征在于,所述在所述目标队员在所述已有索引树组中所属的索引树k中,根据所述最近一次位置数据从所述目标队员已有的子节点中查找所述目标队员的更新后的子节点,包括:
获取所述目标队员在所述已有索引树组中所属的索引树k中的a个下一层子节点,a≥1;
对于所述a个下一层子节点中的每一个子节点,根据对应于所述子节点的队员的位置数据和所述最近一次位置数据,计算对应于所述子节点的队员与所述目标队员之间的距离;
判断所述距离是否小于所述预设关联距离;
若小于所述预设关联距离,则继续保留对应于所述子节点的队员作为所述目标队员的下一层子节点,并保持所述子节点的所有子节点不变;
若大于所述预设关联距离,则不再保留对应于所述子节点的队员作为所述目标队员的下一层子节点,并为对应于所述子节点的队员重新确定父节点。
4.根据权利要求2所述的方法,其特征在于,所述根据所述最近一次位置数据,在所述已有索引树组的所有节点中查找所述目标队员的更新后的父节点,包括:
当所述目标队员在所述索引树k中存在父节点p时,判断所述索引树k中是否存在所述目标队员的更新后的父节点;
当所述索引树k中存在所述更新后的父节点时,将所述目标队员挂靠至所述更新后的父节点;
当所述索引树k中不存在所述更新后的父节点或者所述目标队员在所述索引树k中不存在父节点p时,判断所述已有索引树组中除所述索引树k之外的其它索引树中是否存在所述目标队员的更新后的父节点;
当所述其它索引树中存在所述更新后的父节点时,将所述目标队员挂靠至所述更新后的父节点;
当所述其它索引树中不存在所述更新后的父节点时,确定所述目标队员没有所述更新后的父节点。
5.根据权利要求4所述的方法,其特征在于,所述判断所述索引树k中是否存在所述目标队员的更新后的父节点,包括:
对于所述索引树k中的每一个节点q,计算所述节点q与所述父节点p之间的路径距离Lpq,所述路径距离Lpq等于所述节点q与所述父节点p之间的最短路径中两两相邻的节点间的距离之和;
按所述路径距离Lpq从小到大的顺序依次遍历所述索引树k中的各个节点q;
当遍历得到第一个符合第一预定条件的节点q时,遍历结束,并将所述第一个符合第一预定条件的节点q作为所述目标队员的更新后的父节点;其中,所述第一预定条件是指对应于所述节点q的队员与所述目标队员之间的距离小于所述预设关联距离;
当所述索引树k中不存在符合所述第一预定条件的节点q时,确定所述索引树k中不存在所述目标队员的更新后的父节点。
6.根据权利要求4所述的方法,其特征在于,所述判断所述已有索引树组中除所述索引树k之外的其它索引树中是否存在所述目标队员的更新后的父节点,包括:
对于所述其它索引树中的每一棵索引树,获取所述索引树中的小组核心队员;
对于每一个小组核心队员,根据所述小组核心队员的位置数据和所述最近一次位置数据,计算所述小组核心队员与所述目标队员之间的距离;
按所述距离从小到大的顺序依次遍历所述其它索引树中的每一棵索引树中的每一个节点s;
当遍历得到第一个符合第二预定条件的节点s时,遍历结束,并将所述第一个符合第二预定条件的节点s作为所述目标队员的更新后的父节点;其中,所述第二预定条件是指对应于所述节点s的队员与所述目标队员之间的距离小于所述预设关联距离;
当所述其它索引树中不存在符合所述第二预定条件的节点s时,确定所述其它索引树中不存在所述更新后的父节点。
7.根据权利要求1所述的方法,其特征在于,所述获取所述目标队员在所述更新后的索引树组中所属的索引树所对应的小组队员信息,包括:
对于所述目标队员在所述更新后的索引树组中所属的索引树中的每一个节点,统计所述节点的下一层子节点的数量;
将所述下一层子节点的数量最多的节点所对应的队员确定为所述索引树中的小组核心队员;
至少获取所述小组核心队员的位置数据,作为所述小组队员信息。
8.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:
获取所述n个队员的初始位置数据;
根据所述n个队员的初始位置数据,按照队员间的距离将所述n个队员聚类得到所述索引树组。
9.根据权利要求8所述的方法,其特征在于,所述根据所述n个队员的初始位置数据,按照队员间的距离将所述n个队员聚类得到所述索引树组,包括:
令i=1,从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中;
对所述待检查队列中的每一个队员依次进行检查,从所述未加入索引树的队员中选取符合第三预定条件的队员作为被检查的队员的下一层子节点,并将被选取的队员添加至待检查队列中;其中,所述第三预定条件是指与所述被检查的队员之间的距离小于预设关联距离;
当所述待检查队列中不存在未被检查的队员时,所述第i棵索引树构建完毕;
判断是否存在未加入索引树的队员;
若不存在,则所述索引树组构建完毕;
若存在,则令i=i+1,并再次执行所述从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中的步骤。
10.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:
对于所述更新后的索引树组中的每一棵索引树,检测所述索引树中包含的队员的数量是否小于预设数量阈值;
若小于所述预设数量阈值,则将所述索引树中包含的队员确定为离队队员。
11.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:
当各个所述距离均大于预设距离阈值时,丢弃所述最近一次位置数据。
12.一种应用于组队运动的信息提供装置,其特征在于,所述装置包括:
数据获取模块,被配置为获取目标队员的最近一次位置数据,所述目标队员是组队运动中的n个队员中的一个,n≥2;
相邻节点获取模块,被配置为在所述目标队员在已有索引树组中所属的索引树k中获取相邻节点,所述相邻节点是指所述目标队员的父节点或者子节点;
队员距离计算模块,被配置为对于每一个相邻节点,根据对应于所述相邻节点的队员的位置数据和所述最近一次位置数据,计算对应于所述相邻节点的队员与所述目标队员之间的距离;
索引树更新模块,被配置为当存在至少一个所述距离小于或等于预设距离阈值时,根据所述最近一次位置数据对所述已有索引树组进行更新,得到更新后的索引树组;其中,所述索引树组包括按照队员间的距离将所述n个队员聚类得到的至少一棵索引树,每棵索引树对应于一个小组,每棵索引树中的一个节点对应所述小组中的一个队员;
信息获取模块,被配置为获取所述目标队员在所述更新后的索引树组中所属的索引树所对应的小组队员信息;
信息提供模块,被配置为向所述目标队员提供所述小组队员信息。
13.根据权利要求12所述的装置,其特征在于,所述索引树更新模块,包括:子节点查找子模块、父节点查找子模块和索引树更新子模块;
所述子节点查找子模块,被配置为在所述目标队员在所述已有索引树组中所属的索引树k中,根据所述最近一次位置数据从所述目标队员已有的子节点中查找所述目标队员的更新后的子节点,所述更新后的子节点是与所述目标队员之间的距离小于预设关联距离的队员所对应的节点;
所述父节点查找子模块,被配置为根据所述最近一次位置数据,在所述已有索引树组的所有节点中查找所述目标队员的更新后的父节点;
所述索引树更新子模块,被配置为根据所述更新后的子节点和所述更新后的父节点,得到所述更新后的索引树组。
14.根据权利要求13所述的装置,其特征在于,所述子节点查找子模块,包括:子节点获取子模块、距离计算子模块、距离判断子模块、第一处理子模块和第二处理子模块;
所述子节点获取子模块,被配置为获取所述目标队员在所述已有索引树组中所属的索引树k中的a个下一层子节点,a≥1;
所述距离计算子模块,被配置为对于所述a个下一层子节点中的每一个子节点,根据对应于所述子节点的队员的位置数据和所述最近一次位置数据,计算对应于所述子节点的队员与所述目标队员之间的距离;
所述距离判断子模块,被配置为判断所述距离是否小于所述预设关联距离;
所述第一处理子模块,被配置为当小于所述预设关联距离时,继续保留对应于所述子节点的队员作为所述目标队员的下一层子节点,并保持所述子节点的所有子节点不变;
所述第二处理子模块,被配置为当大于所述预设关联距离时,不再保留对应于所述子节点的队员作为所述目标队员的下一层子节点,并为对应于所述子节点的队员重新确定父节点。
15.根据权利要求13所述的装置,其特征在于,所述父节点查找子模块,包括:第一判断子模块、第一挂靠子模块、第二判断子模块、第二挂靠子模块和确定子模块;
所述第一判断子模块,被配置为当所述目标队员在所述索引树k中存在父节点p时,判断所述索引树k中是否存在所述目标队员的更新后的父节点;
所述第一挂靠子模块,被配置为当所述索引树k中存在所述更新后的父节点时,将所述目标队员挂靠至所述更新后的父节点;
所述第二判断子模块,被配置为当所述索引树k中不存在所述更新后的父节点或者所述目标队员在所述索引树k中不存在父节点p时,判断所述已有索引树组中除所述索引树k之外的其它索引树中是否存在所述目标队员的更新后的父节点;
所述第二挂靠子模块,被配置为当所述其它索引树中存在所述更新后的父节点时,将所述目标队员挂靠至所述更新后的父节点;
所述确定子模块,被配置为当所述其它索引树中不存在所述更新后的父节点时,确定所述目标队员没有所述更新后的父节点。
16.根据权利要求15所述的装置,其特征在于,所述第一判断子模块,包括:路径计算子模块、第一遍历子模块、第一确定子模块和第二确定子模块;
所述路径计算子模块,被配置为对于所述索引树k中的每一个节点q,计算所述节点q与所述父节点p之间的路径距离Lpq,所述路径距离Lpq等于所述节点q与所述父节点p之间的最短路径中两两相邻的节点间的距离之和;
所述第一遍历子模块,被配置为按所述路径距离Lpq从小到大的顺序依次遍历所述索引树k中的各个节点q;
所述第一确定子模块,被配置为当遍历得到第一个符合第一预定条件的节点q时,遍历结束,并将所述第一个符合第一预定条件的节点q作为所述目标队员的更新后的父节点;其中,所述第一预定条件是指对应于所述节点q的队员与所述目标队员之间的距离小于所述预设关联距离;
所述第二确定子模块,被配置为当所述索引树k中不存在符合所述第一预定条件的节点q时,确定所述索引树k中不存在所述目标队员的更新后的父节点。
17.根据权利要求15所述的装置,其特征在于,所述第二判断子模块,包括:核心获取子模块、队员距离计算子模块、第二遍历子模块、第三确定子模块和第四确定子模块;
所述核心获取子模块,被配置为对于所述其它索引树中的每一棵索引树,获取所述索引树中的小组核心队员;
所述队员距离计算子模块,被配置为对于每一个小组核心队员,根据所述小组核心队员的位置数据和所述最近一次位置数据,计算所述小组核心队员与所述目标队员之间的距离;
所述第二遍历子模块,被配置为按所述距离从小到大的顺序依次遍历所述其它索引树中的每一棵索引树中的每一个节点s;
所述第三确定子模块,被配置为当遍历得到第一个符合第二预定条件的节点s时,遍历结束,并将所述第一个符合第二预定条件的节点s作为所述目标队员的更新后的父节点;其中,所述第二预定条件是指对应于所述节点s的队员与所述目标队员之间的距离小于所述预设关联距离;
所述第四确定子模块,被配置为当所述其它索引树中不存在符合所述第二预定条件的节点s时,确定所述其它索引树中不存在所述更新后的父节点。
18.根据权利要求12所述的装置,其特征在于,所述信息获取模块,包括:数量统计子模块、核心确定子模块和信息获取子模块;
所述数量统计子模块,被配置为对于所述目标队员在所述更新后的索引树组中所属的索引树中的每一个节点,统计所述节点的下一层子节点的数量;
所述核心确定子模块,被配置为将所述下一层子节点的数量最多的节点所对应的队员确定为所述索引树中的小组核心队员;
所述信息获取子模块,被配置为至少获取所述小组核心队员的位置数据,作为所述小组队员信息。
19.根据权利要求12至18任一所述的装置,其特征在于,所述装置还包括:
初始位置获取模块,被配置为获取所述n个队员的初始位置数据;
索引树构建模块,被配置为根据所述n个队员的初始位置数据,按照队员间的距离将所述n个队员聚类得到所述索引树组。
20.根据权利要求19所述的装置,其特征在于,所述索引树构建模块,包括:选取子模块、检查子模块、构建子模块和判断子模块;
所述选取子模块,被配置为令i=1,从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中;
所述检查子模块,被配置为对所述待检查队列中的每一个队员依次进行检查,从所述未加入索引树的队员中选取符合第三预定条件的队员作为被检查的队员的下一层子节点,并将被选取的队员添加至待检查队列中;其中,所述第三预定条件是指与所述被检查的队员之间的距离小于预设关联距离;
所述构建子模块,被配置为当所述待检查队列中不存在未被检查的队员时,所述第i棵索引树构建完毕;
所述判断子模块,被配置为判断是否存在未加入索引树的队员;
所述构建子模块,还被配置为当不存在时,所述索引树组构建完毕;
所述选取子模块,还被配置为当存在时,则令i=i+1,并再次执行所述从未加入索引树的队员中选取1个队员作为第i棵索引树的第一层节点,并将被选取的队员添加至待检查队列中的步骤。
21.根据权利要求12至18任一所述的装置,其特征在于,所述装置还包括:
队员数量检测模块,被配置为对于所述更新后的索引树组中的每一棵索引树,检测所述索引树中包含的队员的数量是否小于预设数量阈值;
离队队员确定模块,被配置为当小于所述预设数量阈值时,将所述索引树中包含的队员确定为离队队员。
22.根据权利要求12至18任一所述的装置,其特征在于,所述装置还包括:
位置数据丢弃模块,被配置为当各个所述距离均大于预设距离阈值时,丢弃所述最近一次位置数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510228759.XA CN106202113B (zh) | 2015-05-07 | 2015-05-07 | 应用于组队运动的信息提供方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510228759.XA CN106202113B (zh) | 2015-05-07 | 2015-05-07 | 应用于组队运动的信息提供方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106202113A CN106202113A (zh) | 2016-12-07 |
CN106202113B true CN106202113B (zh) | 2019-11-08 |
Family
ID=57459725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510228759.XA Active CN106202113B (zh) | 2015-05-07 | 2015-05-07 | 应用于组队运动的信息提供方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106202113B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110164105B (zh) * | 2018-03-07 | 2020-11-10 | 义乌市凡特塑料制品有限公司 | 一种用于智能首饰的寻回方法及其系统 |
CN109107135A (zh) * | 2018-06-04 | 2019-01-01 | 上海康斐信息技术有限公司 | 竞速运动的统计信息获取方法及装置、电子设备 |
CN113792184A (zh) * | 2020-08-04 | 2021-12-14 | 北京沃东天骏信息技术有限公司 | 广告召回方法及装置、系统、计算机存储介质、电子设备 |
CN116912042B (zh) * | 2023-09-14 | 2023-11-28 | 南京川尔文科技有限公司 | 用于景点管理系统的处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102538797A (zh) * | 2011-12-30 | 2012-07-04 | 东风汽车有限公司 | 组队车辆的导航方法及导航装置 |
CN103198151A (zh) * | 2013-04-24 | 2013-07-10 | 北京航空航天大学 | 区域性城市公交车辆运行信息的索引查询系统及方法 |
CN103528593A (zh) * | 2012-07-06 | 2014-01-22 | 厦门雅迅网络股份有限公司 | 一种自驾游车队导航的地图显示方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9754328B2 (en) * | 2013-08-08 | 2017-09-05 | Academia Sinica | Social activity planning system and method |
-
2015
- 2015-05-07 CN CN201510228759.XA patent/CN106202113B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102538797A (zh) * | 2011-12-30 | 2012-07-04 | 东风汽车有限公司 | 组队车辆的导航方法及导航装置 |
CN103528593A (zh) * | 2012-07-06 | 2014-01-22 | 厦门雅迅网络股份有限公司 | 一种自驾游车队导航的地图显示方法 |
CN103198151A (zh) * | 2013-04-24 | 2013-07-10 | 北京航空航天大学 | 区域性城市公交车辆运行信息的索引查询系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106202113A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105263113B (zh) | 一种基于众包的WiFi位置指纹地图构建方法及其系统 | |
CN106339428B (zh) | 基于视频大数据的嫌疑人身份识别方法和装置 | |
WO2017031856A1 (zh) | 信息预测的方法和装置 | |
CN105409306B (zh) | 移动终端位置预测方法及装置 | |
Zhang et al. | Towards scalable and dynamic social sensing using a distributed computing framework | |
Rashid et al. | Socialdrone: An integrated social media and drone sensing system for reliable disaster response | |
CN106202113B (zh) | 应用于组队运动的信息提供方法和装置 | |
CN106714110A (zh) | 一种Wi‑Fi位置指纹地图自动构建方法及系统 | |
WO2015067119A1 (zh) | 一种位置兴趣点聚类方法和相关装置 | |
CN109347697A (zh) | 机会网络链路预测方法、装置及可读存储介质 | |
US11138266B2 (en) | Leveraging query executions to improve index recommendations | |
CN109213882A (zh) | 图片排序方法及终端 | |
CN110533685A (zh) | 对象跟踪方法和装置、存储介质及电子装置 | |
CN110533700A (zh) | 对象跟踪方法和装置、存储介质及电子装置 | |
CN110263840B (zh) | 一种线路分析方法、装置及程序产品、存储介质 | |
AU2021204584A1 (en) | Methods, apparatuses, devices and storage media for detecting correlated objects involved in image | |
CN105636102B (zh) | 一种基于贝叶斯后验概率的定位方法及装置 | |
CN106228029B (zh) | 基于众包的量化问题求解方法和装置 | |
KR101350782B1 (ko) | 데이터 샘플링 방법 및 장치 | |
Wietrzykowski et al. | Adopting the FAB-MAP algorithm for indoor localization with WiFi fingerprints | |
CN116528149A (zh) | 融合定位方法、系统、电子设备及存储介质 | |
CN112966947B (zh) | 一种基于物联网的智慧旅游景区管理方法及系统 | |
CN112995902A (zh) | 一种远距离广域网定位方法、装置、设备及存储介质 | |
CN113326885A (zh) | 训练分类模型和数据分类的方法及装置 | |
CN106488403A (zh) | 恶意节点攻击下的基于残差分析的压缩感知定位方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |