发明内容
本申请提出一种基于地理位置的信息推送方法,该方法包括:
计算预设时间段内用户的位移偏移量;
基于计算出的所述位移偏移量判断所述用户的地理位置是否发生变化;
当所述用户的地理位置发生变化时,获取所述用户当前的地理位置;
基于获取到的所述用户当前的地理位置向所述用户推送业务信息。
可选的,所述计算预设时间段内用户的位移偏移量包括:
采集用户在所述预设时间段内的运动状态数据;所述运动状态数据由至少一种运动状态组成;其中每一种运动状态分别预设了对应的单位时间内的偏移速度阈值;
统计所述运动状态数据中各运动状态的持续时长;
将所述各运动状态的持续时长分别乘以对应的单位时间内的偏移速度阈值,并计算加权和以得到所述预设时间段内用户的位移偏移量。
可选的,所述基于计算出的所述位移偏移量判断所述用户的地理位置是否发生变化包括:
判断计算出的所述位移偏移量是否达到预设阈值;
当所述位移偏移量达到预设阈值时,确定用户的地理位置发生变化;
当所述位移偏移量未达到预设阈值时,确定用户的地理位置未发生变化。
可选的,所述预设时间段包括距离上一次获取到所述用户的地理位置时的间隔时间段;
所述计算预设时间段内用户的位移偏移量之前,所述方法还包括:
获取当前时间点;
读取已记录的上一次获取到所述用户的地理位置时的时间点;
计算当前时间点与上一次获取到所述用户的地理位置时的时间点之间的时间间隔,以得到所述预设时间段。
可选的,所述方法还包括:
当所述用户的地理位置未发生变化时,基于上一次获取到的所述用户的地理位置向所述用户推送业务信息。
本申请还提出一种基于地理位置的业务信息推送装置,该装置包括:
计算模块,用于计算预设时间段内用户的位移偏移量;
判断模块,用于基于计算出的所述位移偏移量判断所述用户的地理位置是否发生变化;
获取模块,用于在所述用户的地理位置发生变化时,获取所述用户当前的地理位置;
推送模块,用于基于获取到的所述用户当前的地理位置向所述用户推送业务信息。
可选的,所述计算模块具体用于:
采集用户在所述预设时间段内的运动状态数据;所述运动状态数据由至少一种运动状态组成;其中每一种运动状态分别预设了对应的单位时间内的偏移速度阈值;
统计所述运动状态数据中各运动状态的持续时长;
将所述各运动状态的持续时长分别乘以对应的单位时间内的偏移速度阈值,并计算加权和以得到所述预设时间段内用户的位移偏移量。
可选的,所述判断模块具体用于:
判断计算出的所述位移偏移量是否达到预设阈值;
当所述位移偏移量达到预设阈值时,确定用户的地理位置发生变化;
当所述位移偏移量未达到预设阈值时,确定用户的地理位置未发生变化。
可选的,所述预设时间段包括距离上一次获取到所述用户的地理位置时的间隔时间段;
所述计算模块进一步用于:
获取当前时间点;
读取已记录的上一次获取到所述用户的地理位置时的时间点;
计算当前时间点与上一次获取到所述用户的地理位置时的时间点之间的时间间隔,以得到所述预设时间段。
可选的,所述推送模块进一步用于:
当所述用户的地理位置未发生变化时,基于于上一次获取到的所述用户的地理位置向所述用户推送业务信息。
本申请中,通过计算预设时间段内用户的位移偏移量,并基于计算出的所述位移偏移量确定所述用户的地理位置是否发生变化;当所述用户的地理位置发生变化时,则获取所述用户当前的地理位置,并基于获取到的所述用户当前的地理位置向所述用户推送业务信息。
由于本申请中只在基于用户的位移偏移量确定出用户的地理位置发生变化时,才再次获取用户的地理位置,并基于用户的地理位置向用户推送业务信息,因此可以避免在向用户推送业务信息时频繁的获取用户的地理位置,从而可以降低用户终端的耗电量以及在进行业务信息推送时的计算开销。
具体实施方式
在相关技术中,为解决在基于用户的地理位置进行业务信息推送时,频繁的获取地理位置,以及频繁的上报用户位置而导致的用户的终端消耗电量过快、以及服务端计算开销增大的问题,通常可以通过如下方案来实现:
在一种方案中,可以以时间为维度缓存用户的地理位置,并设定用户位置变化不大的时间范围,在该时间范围内,可以认为用户的位置变化不大,用户的终端在该时间范围内可以不再重复的获取并缓存用户的地理位置。
然而,在这种方案中,如果在设定的时间范围内,用户有过快速的位置移动,比如乘坐汽车、火车等移动,基于用户的地理位置推送的业务信息可能会不精准。
在另一种方案中,可以基于应用的活跃周期来周期性的获取用户的地理位置,即用户启动应用或者在后台重新切回应用,让应用处在活跃状态时,可以触发获取一次用户的地理位置并缓存,直到应用下一次重新进入活跃状态时,再重复获取用户的地理位置。
然而,在这种方案中,如果在连续两次的应用活跃状态下,用户的实际位置并未变化,仍然会导致的用户的终端消耗电量过快、以及增大服务端计算开销的问题。
有鉴于此,本申请提出一种基于地理位置的业务信息推送方法,通过计算预设时间段内用户的位移偏移量,并基于计算出的所述位移偏移量确定所述用户的地理位置是否发生变化;当所述用户的地理位置发生变化时,则获取所述用户当前的地理位置,并基于获取到的所述用户当前的地理位置向所述用户推送业务信息。
由于本申请中只在基于用户的位移偏移量确定出用户的地理位置发生变化时,才再次获取用户的地理位置,并基于用户的地理位置向用户推送业务信息,因此可以避免在向用户推送业务信息时,频繁的获取用户的地理位置,从而可以降低用户终端的耗电量以及在进行业务信息推送时的计算开销。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种基于地理位置的信息推送方法,应用于客户端,所述方法执行以下步骤:
步骤101,计算预设时间段内用户的位移偏移量;
步骤102,基于计算出的所述位移偏移量确定所述用户的地理位置是否发生变化;
步骤103,当所述用户的地理位置发生变化时,获取所述用户当前的地理位置;
步骤104,基于获取到的所述用户当前的地理位置向所述用户推送业务信息。
上述客户端可以包括加载在用户的便携式智能终端上的(比如用户的智能手机),具有基于用户的地理位置面向用户推送业务信息功能的客户端软件;例如,该客户端软件可以是具有基于用户的地理位置面向用户推送商家信息功能的电商客户端软件;比如,手机版的淘宝客户端软件。
在相关技术中,客户端基于用户的地理位置为用户推送业务信息时,可以通过执行客户端中设定的业务推送逻辑来实现。换言之,客户端可以通过执行上述设定的业务推送逻辑,来开启基于用户的地理位置向用户推送业务信息的功能。
其中,上述业务推送逻辑通常可以包括定位用户当前的地理位置、基于当前的地理位置为用户计算最适合的业务、或者将用户的地理位置上报至服务端、由服务端基于用户的地理位置为用户计算最适合的业务、将计算出的该业务的相关信息推送给用户等执行逻辑。
当该业务推送逻辑被执行后,客户端可以定位并缓存用户的地理位置,并基于用户的地理位置为用户计算最适合的业务,然后将计算出的该业务的相关信息推送给用户。
或者,客户端可以定位并缓存用户的地理位置,然后将用户的地理位置上报至服务端,由服务端基于用户的地理位置为用户计算最适合的业务,并将计算出的该业务相关的信息推送至客户端呈现给用户。
然而,由于在日常活动中,用户的地理位置会发生周期性的变化,因此为了实现基于用户的地理位置更加精准的为用户推送业务信息,客户端通常可以基于预设的周期,周期性的执行上述业务推送逻辑。
例如,客户端可以预设该业务推送逻辑的执行周期,然后按照该执行周期,周期性的执行上述业务推送逻辑,定位用户的地理位置,并基于用户实际的地理位置重新为用户推送合适的业务信息。比如,该执行周期可以设置为30分钟,当客户端启动后可以通过计时器进行计时,每30分钟通过执行上述业务推送逻辑来重新对用户的地理位置进行定位,并基于实际的地理位置重新为用户推送合适的业务信息。
然而,通过这种方式,客户端周期性的执行上述业务推送逻辑,会造成频繁的获取用户的地理位置,会导致用户的终端的电量消耗增加、以及在进行业务推送时的计算开销增大的问题。
为了解决上述问题,在本例中,客户端仍然可以基于预设的周期,周期性的执行上述业务推送逻辑。然而,客户端在执行上述业务推送逻辑之前,可以引入一个判断逻辑,该判断逻辑用于判断用户的地理位置是否发生变化,从而来确定是否需要执行上述业务推送逻辑。
其中,该判断逻辑包括:计算预设时间段内用户的位移偏移量,并基于计算出的位移偏移量来确定用户的地理位置是否发生变化。
如果执行该判断逻辑后,确定用户的地理位置发生了变化,此时再执行上述业务推送逻辑,获取用户当前的地理位置,并基于用户的地理位置为用户推送业务信息。
如果执行该判断逻辑后,确定用户的地理位置未发生变化,此时可以不再执行上述业务推送逻辑,不再重复的获取用户的地理位置,而是直接使用上一次获取到的该用户的地理位置继续向该用户推送业务信息,或者直接认可上一次推送的业务信息。从而,可以确保在向用户推送业务信息的过程中,避免客户端频繁的获取用户的地理位置。
其中,上述预设时间段可以是距离上一次获取到用户的地理位置时的间隔时间段。即,在实际应用中,上述预设时间段可以与客户端执行上述业务推送逻辑的执行周期保持一致。
以下通过具体的示例对计算预设时间段内用户的位移偏移量,以及基于计算出的位移偏移量来确定用户的地理位置是否发生变化的过程进行详细描述。
在本例中,当客户端启动后,可以通过执行上述业务推送逻辑,来获取用户的地理位置,并基于用户的地理位置为用户推送业务信息。其中,基于用户的地理位置为用户推送的业务信息,仍然可以是由客户端基于用户的地理位置为用户计算得到,也可以是客户端将用户的地理位置上报至服务端,由服务端基于用户的地理位置计算得到,此处不再重复描述。
当客户端首次获取到用户的地理位置时,可以记录获取到用户的地理位置的时间点。当客户端基于预设的执行周期,需要再次执行上述业务推送逻辑,客户端可以获取当前的时间点,并读取已经记录的上一次获取到用户的地理位置时的时间点,然后计算当前时间点与该上一次获取到用户的地理位置时的时间点之间的时间间隔。此时,该时间间隔即为上述预设时间段。
当客户端计算出上述预设时间段后,客户端可以采集用户在预设时间段内的运动状态数据,然后通过预设的位移偏移量算法对采集到的运动状态数据进行计算,来得到该预设时间段内用户的位移偏移量。其中,该运动状态数据由至少一种运动状态组成。例如,该运动状态则可以包括静止状态、步行状态、跑步状态、汽车状态以及乘车状态等运动状态。
在本例中,用户的运动状态数据时,可以通过用户的终端中内置的用于采集用户的运动状态数据的协处理器来完成采集。
终端中安装的协处理器,可以在用户的日常活动中,通过监测来自终端中安装的加速计、陀螺仪、指南针等传感器的动态数据,对用户日常活动中的各种运动状态、各种运动状态的位移速度以及各种运动状态的持续时长进行记录。
例如,在实现时,该协处理器可以是M7或者M8型号的协处理器。
其中,协处理器通过监测来自终端中安装的加速计、陀螺仪、指南针等传感器的动态数据,对用户日常活动中的各种运动状态以及各种运动状态的持续时长进行记录的详细过程在本申请中不再进行详细描述,本领域技术人员在将本申请的技术方案付诸实现时,可以参考相关技术中的记载。
客户端在采集预设时间段内用户的运动状态数据时,可以通过用户的终端系统提供的API(Application Programming Interface,应用程序编程接口)接口读取协处理器在预设时间段内记录的用户的所有运动状态数据。
当然,除了以上描述的可以通过用户的终端内置的协处理器来采集以外,在实现时,也可以通过内置了协处理器的外接设备(比如与用户的终端连接的可穿戴设备),或者并未内置协处理器但具有采集用户的运动状态数据功能的外接设备来完成采集,在本申请中不进行特别限定。
在本例中,当客户端采集到用户在上述预设时间段内的运动状态数据后,可以统计该运动状态数据中各运动状态的持续时长。
例如,假设该运动状态数据由步行状态、跑步状态和汽车状态三种运动状态组成,此时客户端可以分别统计该运动状态数据中步行状态、跑步状态和骑车状态的持续时长,即用户在该时间段内,步行、跑步和骑车的持续时长。
在本例中,客户端还可以为采集到的运动状态数据中的每一种运动状态,分别预设对应的单位时间内的偏移速度阈值。
其中,需要指出的是,该偏移速度阈值是指在某一运动状态下,单位时间内用户所能位移的距离,不同的运动状态单位时间内的偏移速度阈值不同。
例如,假设用户的运动状态可以包括静止状态、步行状态、跑步状态、骑车状态和乘车状态五种,客户端在为每一个中运动状态设置单位时间内的偏移速度阈值时,可以将静止状态的单位时间内的偏移速度阈值S0设置为0米/秒;将步行状态的单位时间内的偏移速度阈值S1设置为1米/秒;将跑步状态的单位时间内的偏移速度阈值S2设置为3米/秒步;将骑车状态的单位时间内的偏移速度阈值S3设置为6米/秒;将乘车状态的单位时间内的偏移速度阈值S4设置为10米/秒。
其中,各运动状态设置单位时间内的偏移速度阈值的具体取值,可以基于各运动状态在持续时长内的平均位移速度来设定。
例如,协处理器可以实时记录各运动状态在持续时长内的位移速,客户端可以从协处理器中读取各运动状态在持续时长内的位移速度,计算各运动状态在持续时长内的平均位移速度,然后将计算出的平均位移速度设定为各运动状态的单位时间内的偏移速度阈值。
在本例中,当客户端统计出用户在预设时间段内的运动状态数据中,各运动状态的持续时长后,此时客户端可以基于预设的位移偏移量算法,将各运动状态的持续时长分别乘以对应的单位时间内的偏移速度阈值,然后将进行加权和计算,以得到所述预设时间段内用户的位移偏移量。
其中,该预设的位移偏移量算法可以用如下公式来进行表征:
L=(S0×C0)+(S1×C1)+(S2×C2)+(S3×C3)…+(Sn×Cn);
上述公式中,L表示预设时间段T1内用户的位移偏移量;C0~Cn分别表示组成预设时间段T1内用户的运动状态数据的n种运动状态。S0~Sn分别表示与C0~Cn对应的单位时间内的偏移速度阈值。
例如,假设预设时间段为T1,时间段T1内的运动状态数据由静止状态C0、步行状态C1、跑步状态C2、骑车状态C3和乘车状态C4等五种运动状态组成,静止状态的单位时间内的偏移速度阈值为S0,步行状态的单位时间内的偏移速度阈值为S1,跑步状态的单位时间内的偏移速度阈值为S2,骑车状态的单位时间内的偏移速度阈值为S3,乘车状态的单位时间内的偏移速度阈值为S4,那么预设时间段T1内用户的位移偏移值L=(S0×C0)+(S1×C1)+(S2×C2)+(S3×C3)+(S4×C4)+(S5×C5)。
在本例中,当客户端基于上述公式计算出预设时间段内用户的位移偏移量后,此时客户端可以基于计算出的位移偏移量来确定用户当前的地理位置是否发生变化。
其中,客户端在基于计算出的位移偏移量来确定用户当前的地理位置是否发生变化时,可以通过判断计算出的该位移偏移量是否达到预设阈值来实现。
该预设阈值可以是一个客户端设定的可以容忍的偏移半径,只要用户的位移偏移量小于该偏移半径,即用户当前仍然处于由该偏移半径所组成的一个圆形的偏移区域以内,此时客户端可以认为用户的地理位置未发生变化。反之,可以认为用户的地理位置发生了变化。
其中,该预设阈值的取值大小,可以基于不同业务场景下的需求进行设置;例如,在需要进行频繁的业务推送的业务场景中,可以将该预设阈值设置为一个较小的阈值,即将可以容忍的偏移区域设置为一个较小的区域;当在不需要进行频繁的业务推送的业务场景中,可以将该预设阈值设置为一个较大的阈值,即将可以容忍的偏移区域设置为一个较大的区域。
在本例中,客户端在判断计算出的位移偏移量是否达到预设阈值时,可以将计算出的该位移偏移量与预设阈值进行比较,如果计算出的位移偏移量达到预设阈值,即该位移偏移量大于或等于预设阈值时,此时用户的偏移位置已经超出了可以容忍的偏移范围以外,客户端可以认为当前用户的地理位置发生变化。
在这种情况下,客户端可以执行设定的上述业务推送逻辑,重新获取用户的地理位置,并基于重新获取到的用户的地理位置为所述用户推送业务信息。
当然,如果计算出的位移偏移量小于预设阈值,此时用户的偏移位置仍然处于可以容忍的偏移范围以内,客户端可以认为当前用户的地理位置未发生变化。
在这种情况下,客户端可以停止执行设定的业务推送逻辑,不再重复获取用户的地理位置,而是继续使用上次获取到的该用户的地理位置为该用户推送业务信息,或者客户端也可以直接认可上一次推送的业务信息。
在本例中,当客户端基于预设的执行周期,需要再次执行上述业务推送逻辑时,可以重复以上过程,客户端可以基于计算出的用户的位移偏移量,再次确定用户的地理位置是否发生变化,以确定是否需要执行上述业务推送逻辑,重复获取用户的地理位置,不再赘述。
可见,通过这种方式,当客户端确定用户的地理位置未发生变化时,可以不再重复获取用户的地理位置,以及重新基于用户的地理位置进行推送业务的计算,从而可以降低用户终端的耗电量以及在进行业务信息推送时的计算开销。
以下结合具体的应用场景对以上例子中的技术方案进行说明。
在示出的一种应用场景中,上述客户端可以是具有基于用户的地理位置面向用户推送商家信息功能的电商客户端软件,比如该客户端软件可以是手机版的淘宝客户端软件。
上述客户端向用户推送的业务信息可以是基于用户的地理位置为用户计算出的最合适的商家的相关信息。比如,商家的促销信息。
该客户端软件可以周期性的定位并缓存用户的地理位置,然后基于用户的地理位置为用户计算附近最适合用户的商家,然后将计算出的该商家的信息推送给用户。
或者,该客户端软件也可以周期性的定位并缓存用户的地理位置,然后将用户的地理位置上报至服务端,然后由服务端基于用户的地理位置为用户计算附近最适合用户的商家,然后将计算出的该商家的信息推送至客户端软件呈现给用户。
在本例中,为避免客户端软件在向用户推送商家的信息时,频繁获取用户的地理位置,当客户端软件需要为用户推送商家的信息,需要再次获取用户的地理位置时,可以计算距离上一次获取到用户的地理位置时的间隔时间段内,用户的位移偏移量。其中,具体的计算过程不再赘述。
当客户端软件计算出距离上一次获取到用户的地理位置时的间隔时间段内,用户的位移偏移量后,可以将该用户的位移偏移量与预设阈值进行比较。
一方面,如果该用户的位移偏移量大于或者等于预设阈值时,此时用户的偏移位置已经超出了可以容忍的偏移范围以外,客户端可以认为当前用户的地理位置发生了变化,于是客户端软件可以重新获取用户的地理位置,并基于当前的地理位置重新为用户计算合适的商家,然后将该商家的信息推送给用户。
另一方面,如果该用户的位移偏移量小于预设阈值时,此时用户的偏移位置仍然处于可以容忍的偏移范围以内,客户端可以认为当前用户的地理位置未发生变化,于是客户端软件可以不再重新获取用户的地理位置,可以继续使用上次获取到的该用户的地理位置为该用户推送合适的商家的信息,或者客户端也可以直接认可上一次推送的商家的信息。
可见,通过这种方式,使得客户端软件在基于用户的地理位置,为用户推送商家的信息时,可以避免频繁的获取用户的地理位置,从而可以降低用户终端的耗电量以及在进行商家的信息推送时的计算开销。
在以上各实施例中,通过计算预设时间段内用户的位移偏移量,并基于计算出的所述位移偏移量确定所述用户的地理位置是否发生变化;当所述用户的地理位置发生变化时,则获取所述用户当前的地理位置,并基于获取到的所述用户当前的地理位置向所述用户推送业务信息。
由于本申请中只在基于用户的位移偏移量确定出用户的地理位置发生变化时,才再次获取用户的地理位置,并基于用户的地理位置向用户推送业务信息,因此可以避免在向用户推送业务信息时,频繁的获取用户的地理位置,从而可以降低用户终端的耗电量以及在进行业务信息推送时的计算开销。
与上述方法实施例相对应,本申请还提供了装置的实施例。
请参见图2,本申请提出一种基于地理位置的信息推送装置20,应用于客户端;其中,请参见图3,作为承载所述基于地理位置的信息推送装置20的客户端所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述基于地理位置的信息推送装置20通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置20包括:
计算模块201,用于计算预设时间段内用户的位移偏移量;
确定模块202,用于基于计算出的所述位移偏移量确定所述用户的地理位置是否发生变化;
获取模块203,用于在所述用户的地理位置发生变化时,获取所述用户当前的地理位置;
推送模块204,用于基于获取到的所述用户当前的地理位置向所述用户推送业务信息。
在本例中,所述计算模块201具体用于:
采集用户在所述预设时间段内的运动状态数据;所述运动状态数据由至少一种运动状态组成;其中每一种运动状态分别预设了对应的单位时间内的偏移速度阈值;
统计所述运动状态数据中各运动状态的持续时长;
将所述各运动状态的持续时长分别乘以对应的单位时间内的偏移速度阈值,并计算加权和以得到所述预设时间段内用户的位移偏移量。
在本例中,所述确定模块202具体用于:
判断计算出的所述位移偏移量是否达到预设阈值;
当所述位移偏移量达到预设阈值时,确定用户的地理位置发生变化;
当所述位移偏移量未达到预设阈值时,确定用户的地理位置未发生变化。
在本例中,所述预设时间段包括距离上一次获取到所述用户的地理位置时的间隔时间段。
在本例中,所述计算模块201进一步用于:
获取当前时间点;
读取已记录的上一次获取到所述用户的地理位置时的时间点;
计算当前时间点与上一次获取到所述用户的地理位置时的时间点之间的时间间隔,以得到所述预设时间段。
在本例中,所述推送模块204进一步用于:
当所述用户的地理位置未发生变化时,基于上一次获取到的所述用户的地理位置向所述用户推送业务信息。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。