用于基于位置的查询或推荐的方法与流程

文档序号:22042946发布日期:2020-08-28 18:21阅读:1362来源:国知局
用于基于位置的查询或推荐的方法与流程

本说明书的一个或多个实施例涉及用于基于位置的查询和/或推荐的方法。



背景技术:

一方面,支持定位的客户端设备(尤其是移动设备)越来越普及,而用户对基于位置的服务的需求也越来越多。为了满足此类需求,目前已经存在各种基于位置来提供服务的方案,这样的服务包括但不限于查询服务和推荐服务等。通常,这样的服务通常需要获知用户的准确位置。

另一方面,用户对隐私问题也越来越关注。用户在将其准确位置提供给服务器时,至少存在两种风险:第一种风险是该位置信息可能会被恶意第三方截获;第二种风险是基于位置的服务本身可能滥用用户所提供的位置。

因此,存在对于能够在保护用户隐私的同时又提供基于位置的查询和/或推荐服务的方法和系统的需求。



技术实现要素:

为了克服现有技术的缺陷,本说明书的一个或多个实施例提供了能够保护用户隐私的用于基于位置的查询和/或推荐的方案。

本说明书的一个或多个实施例通过以下技术方案来实现其上述目的。

在一个方面中,公开了一种用于基于位置的查询的方法,所述方法由用户的客户端设备执行,所述方法包括:确定锚点位置,所述锚点位置与所述客户端设备的实际位置有关;确定虚拟查询半径,所述虚拟查询半径是基于所述锚点位置与所述客户端设备的实际位置的距离以及实际查询半径确定的,所述实际查询半径指示所述用户期望查询的兴趣点的查询范围;向服务器传送查询请求,所述查询请求至少包括所述锚点位置和所述虚拟查询半径;从所述服务器接收查询结果,所述查询结果包括距所述锚点位置在所述虚拟查询半径内的兴趣点;以及过滤所述查询结果以获得距所述客户端设备的实际位置在所述实际查询半径内的兴趣点。

优选地,所述方法还包括:向用户呈现经过滤的查询结果。

优选地,所述锚点位置是至少基于隐私保护等级确定的。

优选地,所述锚点位置是至少基于期望查询性能确定的。

优选地,所述锚点位置相对于所述客户端设备的方位是随机选择的。

优选地,在两次或更多次连续查询期间采用相同的锚点位置。

优选地,其中人流密集地点被优先选择作为锚点位置。

优选地,其中所述锚点位置由所述用户设置。

优选地,其中所述虚拟查询半径等于所述实际查询半径和锚点位置与客户端设备的实际位置的距离之和。

优选地,其中所述虚拟查询半径大于所述实际查询半径和锚点位置与客户端设备间的实际位置的距离之和。

优选地,其中所述查询结果还包括兴趣点的具体位置。

优选地,其中所述查询请求还包括兴趣点类型,且其中所述查询结果仅包括类型为所述兴趣点类型的兴趣点。

在另一方面中,公开了一种用于基于位置的推荐的方法,所述方法由用户的客户端设备执行,所述方法包括:确定锚点位置,所述锚点位置与所述客户端设备的实际位置有关;将所述锚点位置作为所述客户端设备的位置上报给服务器;从所述服务器接收推荐,所述推荐包括在所述锚点位置的推荐半径内的一个或多个兴趣点;对所接收的推送自动进行过滤以获得在客户端设备的兴趣半径内的兴趣点;以及向用户呈现经过滤的推荐结果。

优选地,所述锚点位置是至少基于隐私保护等级确定和/或期望推荐性能确定的。

优选地,所述兴趣半径等于或小于所述推荐半径减去所述锚点位置与所述客户端设备的实际位置之间的距离。

优选地,所述锚点位置相对于所述客户端设备的方位是随机选择的。

优选地,如果所述客户端设备的位置不变,则上报的锚点位置不变。

优选地,其中人流密集地点被优先选择作为锚点位置。

在又一方面中,公开了一种存储指令的计算机可读存储介质,所述指令当被计算机执行时,使所述计算机执行上述方法。

在再一方面中,公开了一种系统,所述系统包括用于执行上述方法的装置。

与现有技术相比,本说明书的一个或多个实施例能够在提供基于位置的查询/推荐服务的同时,更好地保护用户的隐私。

附图说明

以上发明内容以及下面的具体实施方式在结合附图阅读时会得到更好的理解。需要说明的是,附图仅作为所请求保护的发明的示例。在附图中,相同的附图标记代表相同或类似的元素。

图1示出根据现有技术的用于提供基于位置的服务的方法的示例流程图。

图2示出根据现有技术的查询范围的示意图。

图3示出根据本说明书实施例的用于基于位置的查询的方法的示例流程图。

图4示出根据本说明书的一示例的虚拟查询范围的示意图。

图5示出根据本说明书的另一示例的虚拟查询范围的示意图。

图6示出根据本说明书实施例的用于基于位置的推荐的方法的示例流程图。

具体实施方式

以下具体实施方式的内容足以使任何本领域技术人员了解本说明书的一个或多个实施例的技术内容并据以实施,且根据本说明书所揭露的说明书、权利要求及附图,本领域技术人员可轻易地理解本说明书的一个或多个实施例相关的目的及优点。

目前,支持定位的客户端设备(尤其是移动设备)越来越普及,而用户对基于位置的服务的需求也越来越多。为了满足此类需求,目前已经存在各种基于位置来提供服务的方案,这样的服务包括但不限于查询服务和推荐服务等。

一些方案可提供基于位置的查询服务。例如,用户可以查询其客户端设备一定距离内的兴趣点(又称poi,例如“药店”或者“肯德基”等)。

一些方案可提供基于位置的推荐服务。例如,服务器可以基于用户的客户端设备的位置来主动推送一定距离内的兴趣点(附近的餐馆、电影院、共享单车等)。

应当领会,所述兴趣点并不一定是如餐馆等建筑物或商家等,也可以是单车、汽车等物体,还可以是跑腿业务员等人,甚至可以是新闻等信息或数据(信息或数据也可与地点相关联)。

所述基于位置的服务可被应用于各种应用。例如,在地图应用、共享单车应用、打车应用、点评应用、外卖应用、跑腿应用以及其它需要利用到位置的应用中均可以采用根据本说明书实施例的方案。

一方面,为了更好地提供基于位置的服务,服务器通常需要获得客户端设备的准确位置。

另一方面,用户在将其准确位置提供给服务器时,至少存在两种风险:第一种风险是该位置信息可能会被恶意第三方截获;第二种风险是基于位置的服务本身可能滥用用户所提供的位置。因此,如何保护用户的隐私又成为用户关注的问题。

参见图1,其示出了根据现有技术的用于提供基于位置的服务的方法100的示例流程图。

方法100可包括:在步骤102,可由客户端设备确定该客户端设备的位置。该客户端设备可以是任何类型的客户端设备,包括但不限于:台式计算机、笔记本计算机、智能电话、平板计算机、可穿戴设备等。优选地,该客户端设备为移动客户端设备。

该客户端设备通常可包括定位模块。例如,该定位模块可以是gps定位模块。该定位模块还可以是能够用于确定客户端设备的位置的其它模块,例如北斗定位模块、glonass定位模块、galileo模块、基于移动通信基站的三角定位或其它定位技术的定位模块等。还可以采用各种定位模块的任何组合。

该位置例如可通过该客户端设备的经纬度来表示,例如该位置可被表示为经纬度(31.2304°n,121.4737°e)。

替代地,可用其它方式来表示该位置。例如,在客户端设备和服务器之间可约定代表位置的位置表示方式,例如码本。例如,该码本可以基于距某个原点的距离和方位等来确定。可采用本领域技术人员可构想的任何方式来表示该位置。

方法100还可包括:在步骤104,可确定查询半径,所述查询半径可指示用户期望查询的兴趣点的查询范围。例如,该查询范围可以是以该客户端设备的位置为圆心,以查询半径为半径的圆。在查询时,仅查询该查询范围内的兴趣点。

参见图2,其示出了查询范围的示意图。如图2所示,客户端设备的位置在204处,而查询半径为206,则查询范围为以客户端设备的位置204为圆心,以查询半径206为半径的圆202。

该查询半径可以是系统默认的。例如,系统可默认查询距该客户端设备特定距离(即查询半径)内的兴趣点。优选地,该距离为欧几里得距离。

替代地,该查询半径可由用户设置。例如,用户可输入或选择该查询半径。例如,客户端设备可向用户提供查询半径选项。例如,客户端设备可询问用户呈现供选择和/或输入查询半径的界面。此时,用户可通过客户端设备输入查询半径(例如1千米、2千米)。替代地,用户可从客户端设备提供的若干选项中做出选择。此时,用户可从客户端设备所提供的选项中做出选择。

查询半径可采用其它方式来表示。例如,在采用码本的情况下,该查询半径可用单元格数来表示。

在一些示例中,查询范围可以不是被表示为圆,而是可以被表示为其它形状。

可采用本领域技术人员可构想的任何方式来表示该查询范围。

方法100还可包括:在步骤106,可向服务器传送查询请求,该查询请求至少可包括该客户端设备的位置和该查询半径。该查询请求例如可被表示为q(l,r)。其中,l为客户端设备的位置,r为查询半径。一个查询请求的示例可以是q((31.2304°n,121.4737°e),1),其中(31.2304°n,121.4737°e)表示该客户端设备的位置,1表示查询半径为1千米。

在一些示例中,该查询请求还可包括要查询的兴趣点类型。此时,该查询请求可被表示为q(l,r,poi_type)。例如,假设用户想要查询附近的饭馆,该查询请求可以指定兴趣点类型为饭馆。此时,该查询请求可被表示为q((31.2304°n,121.4737°e),1,“饭馆”)。兴趣点类型也可用其它方式(例如代码或缩写等)来表示。

在另一些示例中,该查询请求也可不包括要查询的兴趣点类型。例如,在一些应用(例如地图应用、点评应用)等,可查询该查询范围内的任何类型的兴趣点。

替代地,在另一些应用中,该查询类型可取决于特定应用。例如,在共享单车应用中,默认该兴趣点类型为共享单车。在此情况下,无需显式指定该兴趣点类型。

在一些示例中,为保护用户隐私,该查询请求可被加密。

服务器接收来自客户端设备的查询请求,并基于查询请求中的客户端设备的位置和查询半径(在一些情况下,还可包括兴趣点类型)来执行查询。例如,服务器可查询距该客户端设备的位置在查询半径内的特定兴趣点,并将查询结果返回给客户端设备。

方法100还可包括:在步骤108,客户端设备可从服务器接收查询结果。例如,该查询结果可包括该查询范围内的兴趣点的列表。此外,该查询结果还可包括各兴趣点距该客户端设备的具体距离,例如兴趣点a距客户端设备0.5km等。或者,该查询结果还可包括各兴趣点的具体位置,例如兴趣点a的经纬度等。

该查询结果还可包括有关查询范围内的兴趣点的其它信息,例如对饭店的打分(在点评应用的示例中)或者车辆型号(例如叫车应用等)等等。

方法100还可包括:可选地,在步骤110,客户端设备可向用户呈现查询结果。例如,客户端设备可向用户呈现服务器所返回的兴趣点的列表。客户端设备还可向用户呈现服务器所返回的其它信息,例如兴趣点距客户端的距离、方位以及有关兴趣点的其它信息。

或者,客户端设备还可将兴趣点(例如和客户端设备一起)显示在地图上,以便用户能够更清楚直观地知晓兴趣点的位置。

如上所述,在该方法中,需要向服务器传送客户端设备的准确位置,以便服务器设备能够基于该客户端设备的位置(以及查询半径)来返回查询结果。在这种方式中,服务器明确知晓客户端设备的准确位置,并且可能会滥用该信息。例如,服务器的所有者可能将该客户端设备的位置(以及由此确定的用户的位置)分享给第三方,而用户可能并不想将该位置分享给第三方。

即便服务器不滥用该位置,该查询请求也可能被恶意第三方截获并解密(在加密情况下),从而使得恶意第三方知晓客户端设备的准确位置,给用户带来风险或其它不便。

参见图3,其示出了根据本说明书实施例的用于基于位置的查询的方法300的示例流程图。

方法300可包括:在步骤302,可确定锚点位置。锚点位置与客户端设备所处的实际位置有关,但不是客户端设备所处的实际位置,而是为便于为客户端设备提供基于位置的服务而构造的假想的锚点的位置。在本说明书实施例中,用锚点的位置来代替客户端设备的实际位置,从而为客户端设备提供基于位置的服务。

为了确定锚点位置,首先,可由客户端设备确定该客户端设备所处的实际位置。如上所述,该客户端设备可以是任何类型的客户端设备,包括但不限于:台式计算机、笔记本计算机、智能电话、平板计算机、可穿戴设备等。优选地,该客户端设备为移动客户端设备。

如上所述,该客户端设备通常可包括定位模块。例如,该定位模块可以是gps定位模块或能够用于确定客户端设备的位置的其它模块,例如北斗定位模块、glonass定位模块、galileo模块、基于移动通信基站的三角定位或其它定位技术的定位模块等。还可以采用各种定位模块的任何组合。

该实际位置可用各种方式来表示。例如可通过该客户端设备的经纬度来表示,例如该位置可被表示为经纬度(31.2304°n,121.4737°e)。

替代地,可用其它方式来表示该实际位置。例如,在客户端设备和服务器之间可约定代表位置的位置表示方式,例如码本。例如,该码本可以基于距某个原点的距离和方位等来确定。可采用本领域技术人员可构想的任何方式来表示该位置。

在确定客户端设备的实际位置之后,可基于客户端设备的实际位置来确定锚点位置。

优选地,锚点位置的选择可至少基于用户期望的隐私保护等级。可以领会,所选择的锚点的位置距客户端设备的实际位置越远,越难以知晓客户端设备的位置范围,从而对用户的隐私保护等级越高。

优选地,锚点位置的选择还可至少基于期望查询性能。可以领会,所选择的锚点的位置距客户端设备的实际位置越远,所查询到的兴趣点通常越多,因此在服务器处的查询过程以及客户端处的后续处理过程(将在下文中描述)中将需要更多的处理,因此可能需要花费更长的时间和/或更多的资源,从而降低用户体验。

在锚点选择过程中,通常需要在隐私保护等级和期望查询性能之间取得平衡。因此,在优选实施例中,锚点位置的选择至少考虑隐私保护等级和期望查询性能两者。

假设客户端设备的实际位置为(31.2304°n,121.4737°e),假设所确定的锚点距客户端设备的距离为d,则以该位置(31.2304°n,121.4737°e)为圆心,半径为d的圆周上的点均可被选择为锚点。因此,除此之外,还应考虑锚点位置相对于客户端设备的方位(方向)。在一些示例中,锚点位置相对于客户端设备的方位可随机选择。也就是说,可随机选择该圆周(如图4或图5中用虚线表示的圆周)上的任何点作为锚点。

在一些其它示例中,锚点位置的选择还可考虑其它信息。

优选地,在连续查询过程中,采用相同的锚点位置。通过在两次或多次连续查询过程中采用相同的锚点位置,使得服务器或恶意第三方更难以确定客户端设备的实际位置。例如,如果在连续查询过程中用户的位置基本没有变化,则采用在第一次查询中所采用的锚点位置作为后续查询过程中的锚点位置。这样做可以减少向服务器设备发送的锚点位置,从而避免服务器或恶意第三方通过统计或机器学习等手段来确定客户的实际位置。

优选地,优先选择人流密集地点作为锚点位置。例如,可选择距客户端设备的距离至少为d的所有地点中人最多的地点作为锚点位置。这样做能够使得服务器或恶意第三方难以通过统计或机器学习等手段来确定客户端设备的实际位置。

优选地,可基于市中心或商场的方位来确定锚点相对于客户端设备的实际位置的方位。例如,根据需求,可选择距市中心或商场最近的方向作为锚点的方位。

优选地,可由用户设置锚点位置。例如,可通过以下方式来实现锚点位置的设置。

在一些示例中,可由用户设置锚点位置选择的相关参数。例如,可由用户选择用于确定锚点位置的隐私保护等级。又例如,可由用户选择和/或输入锚点距客户端设备的距离(例如将该距离设置为300米、500米等等)。

在另一些示例中,可向用户提供两个或更多个候选锚点位置,以供用户从中选择。例如,客户端设备可显示地图(例如可在应用中显示地图),并在地图中显示两个或更多个候选锚点位置,以供用户从中选择(例如通过点击地图上的所显示的锚点位置)。在用户选择一个候选锚点位置之后,采用用户所选择的候选锚点位置作为锚点位置。

需要领会,在确定锚点位置时,锚点位置距客户端设备的实际位置的距离d还应大于等于实际查询半径r,以便使得查询结果中包括用户期望查询的全部兴趣点,如将在下文中解释的。

方法300还可包括:在步骤304,可确定虚拟查询半径。虚拟查询半径并非实际查询半径,而是可以由客户端设备基于锚点位置与客户端设备的实际位置的距离以及实际查询半径确定的,如下面详细描述的。

为确定虚拟查询半径,客户端设备可首先确定实际查询半径。实际查询半径指示所述用户期望查询的兴趣点的实际查询范围。也就是说,该实际查询范围可以是以该客户端设备的实际位置为圆心,以实际查询半径为半径的圆(例如图4或图5中用阴影表示的圆)。在查询时,仅期望查询该实际查询范围内的兴趣点。

该实际查询半径可以是由服务器或应用设置的默认值。例如,应用可默认查询距该客户端设备特定距离(即查询半径)内的兴趣点。优选地,该距离为欧几里得距离。

替代地,该实际查询半径可由用户设置。例如,用户可输入或选择该实际查询半径。例如,客户端设备可询问用户呈现供选择和/或输入查询半径的界面。此时,用户可通过客户端设备输入查询半径(例如1千米、2千米)。替代地,用户可从客户端设备提供的若干选项中做出选择。此时,用户可从客户端设备所提供的选项中做出选择。

同样地,该实际查询半径可采用其它方式来表示。例如,在采用码本的情况下,该实际查询半径可用单元格数来表示。

在一些示例中,实际查询范围可以不是被表示为圆,而是可以被表示为其它形状。

可采用本领域技术人员可构想的任何方式来表示该实际查询范围。

在确定实际查询半径之后,可确定虚拟查询半径。虚拟查询半径指示用于向服务器执行兴趣点查询的虚拟查询范围。也就是说,该虚拟查询范围可以是以该锚点位置为圆心,以虚拟查询半径为半径的圆。在向服务器发送查询时,该虚拟查询范围将代替实际查询范围。

在本说明书实施例中,虚拟查询范围通常将覆盖实际查询范围。换言之,假设锚点距客户端设备的距离为d,实际查询半径为r,则虚拟查询半径ra≥r+d。

在一个优选示例中,虚拟查询半径ra=r+d。参见图4,其示出了根据本说明书的一示例的虚拟查询范围的示意图。如图4所示,其中圆401(图4中最大的圆)表示虚拟查询范围,圆心403表示锚点位置,线段405表示虚拟查询半径;圆402(用阴影表示的圆)表示实际查询范围,圆心404表示客户端设备的实际位置,线段406表示实际查询半径。如图4所示,锚点位置(圆心403)距客户端设备的实际位置(圆心404)之间的距离为距离d,虚拟查询半径ra等于距离d加上实际查询半径r,也就是说,图4中的圆401与圆402相切。通过使虚拟查询半径尽量小,本示例可有更好的查询性能。

在另一优选示例中,虚拟查询半径ra>r+d。参见图5,其示出了根据本说明书的另一示例的虚拟查询范围的示意图。如图5所示,其中圆501表示虚拟查询范围,圆心503表示锚点位置,线段505表示虚拟查询半径;圆502表示实际查询范围,圆心504表示客户端设备的实际位置,线段506表示实际查询半径。如图5所示,锚点位置(圆心503)距客户端设备的实际位置(圆心504)之间的距离为距离d,虚拟查询半径ra大于距离d加上实际查询半径r,也就是说,图5中的圆502完全位于圆501内且两者的圆周不接触。可以领会,相对于图4中所示的示例,本示例中的虚拟查询范围较大,因此可以有更好的隐私保护。此外,与图4所示的示例相比,本示例更难以被服务器或恶意第三方在获悉本申请思路的情况下通过各种手段确定客户端的实际位置。

此外,如上所述,无论是在图4中还是在图5中,通常应当确保锚点位置距客户端设备的实际位置的距离d大于等于实际查询半径(即线段406或506的长度)。即,在图4或图5中,用虚线表示的圆和用阴影覆盖的圆为同心圆,且用虚线表示的圆的半径d应该大于等于用阴影覆盖的圆的半径r。在满足此条件的情况下,能够选择适当的虚拟查询半径,使得查询结果中包括用户期望查询的全部兴趣点。否则,如果d<r,则有可能用户期望查询到的一些兴趣点没有被包括在返回的查询结果中。

方法300还可包括:在步骤306,可向服务器传送查询请求,该查询请求至少可包括该锚点位置和该虚拟查询半径。该查询请求例如可被表示为q(la,ra)。其中,la为锚点位置,ra为虚拟查询半径。一个查询请求的示例可以是q((32.3304°n,122.5737°e),1.5),其中(32.3304°n,122.5737°e)指示锚点位置,1.5表示该虚拟查询半径为1.5千米。

类似地,在一些示例中,该查询请求还可包括要查询的兴趣点类型。此时,该查询请求可被表示为q(la,ra,poi_type)。例如,假设用户想要查询附近的饭馆,该查询请求可以指定兴趣点类型为饭馆。此时,该查询请求可被表示为q((32.3304°n,122.5737°e),1.5,“饭馆”)。兴趣点类型也可用其它方式(例如代码或缩写等)来表示。

在另一些示例中,该查询请求也可不包括要查询的兴趣点类型。例如,在一些应用(例如地图应用、点评应用)等,可查询该查询范围内的任何类型的兴趣点。

替代地,在另一些应用中,该查询类型可取决于特定应用。例如,在共享单车应用中,默认该兴趣点类型为共享单车。在此情况下,无需显式指定该兴趣点类型。

在一些示例中,为进一步保护用户隐私,该查询请求可被加密。

服务器接收来自客户端设备的查询请求,并基于查询请求中的锚点位置和虚拟查询半径(在一些情况下,还可包括兴趣点类型)来执行查询。例如,服务器可查询距该锚点位置在虚拟查询半径内的兴趣点,并将查询结果返回给客户端设备。

方法300还可包括:在步骤308,客户端设备可从服务器接收查询结果。例如,该查询结果可包括该虚拟查询范围内的一个或多个兴趣点。也就是说,该查询结果可包括距所述锚点位置在所述虚拟查询半径内的兴趣点。此外,该查询结果通常还可包括各兴趣点的具体位置,例如兴趣点a的经纬度,或者用其它方式表示的位置。

可以领会,当查询请求中包括兴趣点类型时,查询结果可仅包括类型为所述兴趣点类型的兴趣点。

该查询结果还可包括查询到的兴趣点的其它信息,例如对饭店的打分(在点评应用的示例中)或者车辆型号(例如叫车应用等)等等。

方法300还可包括:在步骤310,客户端设备可过滤所接收的查询结果以获得在所述实际查询范围内的兴趣点。也就是说,通过过滤,可获得距所述客户端设备的实际位置在所述实际查询半径内的兴趣点,即我们期望查询的兴趣点。也就是说,可选择图4中的圆402中的兴趣点或图5中的圆502中的兴趣点。可以领会,这些兴趣点是用户期望查询的兴趣点。

方法300还可包括:可选地,在步骤312,客户端设备可向用户呈现经过滤的查询结果。例如,客户端设备可向用户呈现在实际查询范围内的兴趣点的列表。客户端设备还可向用户呈现服务器所返回的其它信息,例如兴趣点距客户端的距离、方位以及有关兴趣点的其它信息。

或者,客户端设备还可将在实际查询范围内的兴趣点(例如和客户端设备一起)显示在地图上,以便用户能够更清楚直观地知晓兴趣点的位置。

参见图6,其示出了根据本说明书实施例的用于基于位置的推荐的方法600的示例流程图。

方法600可包括:在步骤602,可确定锚点位置。锚点位置与客户端设备所处的实际位置有关,但不是客户端设备所处的实际位置,而是为便于为客户端设备提供基于位置的服务而构造的假想的锚点的位置。

为了确定锚点位置,首先,可由客户端设备确定该客户端设备所处的实际位置。

在确定客户端设备的实际位置之后,可基于客户端设备的实际位置来确定锚点位置。

优选地,锚点位置的选择可至少基于用户期望的隐私保护等级。可以领会,所选择的锚点的位置距客户端设备的实际位置越远,越难以知晓客户端设备的位置范围,从而对用户的隐私保护等级越高。

优选地,锚点位置的选择还可至少基于期望推荐性能。可以领会,所选择的锚点的位置距客户端设备的实际位置越远,所推荐到的兴趣点通常越多,因此在服务器处的推荐过程以及客户端处的后续处理过程(将在下文中描述)中将需要更多的处理,因此可能需要花费更长的时间和/或更多的资源,从而降低用户体验。

在锚点选择过程中,通常需要在隐私保护等级和期望推荐性能之间取得平衡。因此,在优选实施例中,锚点位置的选择至少考虑隐私保护等级和期望推荐性能两者。

优选地,在客户端设备的位置基本不变的情况下,可不改变上报的锚点位置,使得服务器或恶意第三方更难以确定客户端设备的实际位置。这样做可以减少向服务器设备发送的锚点位置,从而避免服务器或恶意第三方通过统计或机器学习等手段来确定客户的实际位置。

优选地,优先选择人流密集地点作为锚点位置。例如,可选择距客户端设备的距离至少为d的所有地点中人最多的地点作为锚点位置。这样做能够使得服务器或恶意第三方难以通过统计或机器学习等手段来确定客户端设备的实际位置。

优选地,可基于市中心或商场的方位来确定锚点相对于客户端设备的实际位置的方位。例如,根据需求,可选择距市中心或商场最近的方向作为锚点的方位。

优选地,可由用户设置锚点位置。例如,可由用户设置锚点位置选择的相关参数。或者,可向用户提供两个或更多个候选锚点位置,以供用户从中选择。例如,客户端设备可显示地图(例如可在应用中显示地图),并在地图中显示两个或更多个候选锚点位置,以供用户从中选择(例如通过点击地图上的所显示的锚点位置)。

关于步骤602的详细描述可参考上面针对步骤302的描述。

方法600还可包括:在步骤604,客户端设备可将锚点位置作为客户端设备的位置上报给服务器。通过上报锚点位置而不是客户端设备的实际位置,可以更好地保护用户的隐私。

与传统的基于位置的推荐服务一样,服务器在接收到客户端设备所上报的锚点位置之后,会主动查询该锚点位置一定距离d内的兴趣点,并将这些兴趣点主动推荐给客户端设备。该距离d在本说明书中也被称为推荐半径。

可以看出,与方法300不同的是,在方法600中,不是由客户端设备发起对特定半径内的兴趣点的查询,而是由服务器基于客户端设备上报的位置主动推荐用户可能感兴趣的兴趣点,这些兴趣点是在该上报位置的推荐半径内的兴趣点。

方法600还可包括:在步骤606,客户端从服务器接收推荐,该推荐可包括在推荐半径内的一个或多个兴趣点。也就是说,该推荐可包括距所述锚点位置在所述推荐半径内的兴趣点。此外,该推荐通常还可包括各兴趣点的具体位置,例如兴趣点a的经纬度,或者用其它方式表示的位置。

该推荐还可包括查询到的兴趣点的其它信息,例如对饭店的打分(在点评应用的示例中)或者车辆型号(例如叫车应用等)等等。

方法600还可包括:在步骤608,客户端设备可对所接收的推送自动进行过滤以获得在客户端设备的兴趣半径内的兴趣点。可以理解,由于客户端设备所上报的位置为锚点位置,而不是客户端设备的实际位置,且两者之间存在一定距离,所以在服务器所推荐的兴趣点中,有些兴趣点距客户端设备的距离超出了服务器所使用的推荐半径。此时,客户端设备可根据需要对服务器所推送的结果执行过滤。

在一种过滤方式中,可将兴趣半径设置为等于推荐半径减去锚点位置与客户端设备的实际位置之间的距离d。

在另一种过滤方式中,可将兴趣半径设置为小于推荐半径减去锚点位置与客户端设备的实际位置之间的距离d。

此过程仍可参考图4或图5,其中虚拟查询半径可等效为推送半径,而实际查询半径可等效为兴趣半径。

此外,优选地,兴趣半径可由应用来默认设置。或者,兴趣半径可由用户来设置或选择。

在过滤时,可仅选择距客户端设备的实际位置在兴趣半径内的那些兴趣点,作为经过滤的推荐结果。

方法600还可包括:可选地,在步骤610,客户端设备可向用户呈现经过滤的推荐结果。例如,客户端设备可向用户呈现在兴趣半径内的兴趣点的列表。客户端设备还可向用户呈现服务器所返回的其它信息,例如兴趣点距客户端的距离、方位以及有关兴趣点的其它信息。

或者,客户端设备还可将在兴趣半径内的兴趣点(例如和客户端设备一起)显示在地图上,以便用户能够更清楚直观地知晓兴趣点的位置。

可以领会,方法600的一个或多个步骤的细节可参考方法300。

本申请还公开了一种包括存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。

此外,本申请还公开了一种系统,该系统包括用于实现本文所述的各实施例的方法的装置。

可以理解,根据本说明书的一个或多个实施例的方法可以用软件、固件或其组合来实现。

应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要领会的是,本说明书公开了多个实施例,这些实施例所公开的内容可以互相参照来理解。

应该理解,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。

还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。

同样,需要指出的是,虽然已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本说明书的一个或多个实施例,在没有脱离本发明精神的情况下还可做出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。

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