基于用户的当前位置建议旅行路线的系统和方法
【专利摘要】例如从旅行网站检索与地理区域的兴趣点相关的数据。例如从图片共享服务检索与兴趣点相关的带地理标签的数据。通过,例如,使用地图服务来判定兴趣点间的旅行时间。与兴趣点相关的数据、带地理标签的数据和旅行时间用于为地理区域创建旅行图表,使得带地理标签的数据用于判定用户在具体的兴趣点上花费的时间。如果用户为地理区域中的起始位置和结束位置请求旅行路线,旅行图表被用于创建在时间约束下使路线的得奖分数最大化的旅行路线。得奖分数可以反映路线中的兴趣点的人气、用户数量和用户在其上花费的时间。
【专利说明】基于用户的当前位置建议旅行路线的系统和方法
[0001]本申请包括受版权保护的材料。版权所有人对任何人对本公开的传真复制没有异议,因为它出现在专利和商标局的文件或记录中,但除此以外无论如何保留所有的版权权利。
【技术领域】
[0002]本公开涉及给用户建议旅行路线的系统和方法,以及更特别地,涉及不但基于用户的当前位置、最终目的地和可支配的时间,而且基于各兴趣点的人气和各兴趣点间的旅行时间给用户建议旅行路线。
【背景技术】
[0003]用户经常带着可以拍照的地理感知移动设备旅行。这种照片和其对应的位置可以揭示用户对各个兴趣点的兴趣水平,这反过来可以用于,除了别的之外,建议旅行路线。
【专利附图】
【附图说明】
[0004]如附图中所示,所公开的系统和方法的上述和其它目的、特征和优点将可以从以下的优选实施例的更具体的描述中明显看出,其中在各个视图中参考符号指代相同的零件。附图不一定按比例绘制,而是将重点放在说明本公开的原理上。
[0005]在附图中:
[0006]图1提供用于给用户建议旅行路线的系统和方法的一个实施例的高层的概念性概述。
[0007]图2示出在给用户建议旅行路线的系统和方法的脱机组件中所用的过程的一个实施例。
[0008]图3示出在给用户建议旅行路线的系统和方法的脱机组件中所用的过程的一个实施例。
[0009]图4是示出示例计算设备的内部架构的框图。
【具体实施方式】
[0010]现在将参考附图在下文中更完全地描述主题,附图形成本文的一部分并且通过图示的方式显示具体的示例实施例。然而,可以以各种不同的方式实施主题,因此所覆盖或所要求的主题旨在被解释为不限制于本文所阐述的任何示例实施例,所提供的示例实施例仅仅是说明性的。同样地,旨在为所要求或覆盖的主题包括合理的广阔的范围。
[0011]此外,例如,主题可以作为方法、设备、组件或系统被实施。相应地,实施例可以,例如,采用硬件、软件、固件或它们的任意组合的形式(除了软件本身)。因此,下面的详细描述不旨在被理解为具有限定意义。本【具体实施方式】不旨在作为公知概念的扩展的或详细的讨论,因此,相关领域的一般技术人员公知的细节可能被省略或者以概要的方式进行处理。
[0012]下面参考方法和设备的框图和操作图示对本公开涉及的系统和方法进行描述。应当理解框图或操作图示中的每个模块以及框图或操作图示中的模块的组合可以通过模拟或数字硬件和计算机程序指令的方式被实施。这些计算机程序指令可以被提供给通用计算机、专用计算机、ASIC或其它可编程数据处理装置的处理器,从而使得经由计算机或其它可编程数据处理装置运行的指令实施框图或一个或多个操作框中指定的功能/动作。在某些替代实施例中,方框中提到的功能/动作发生的顺序可能不同于操作图示中提到的顺序。例如,连续显示的两个方框实际上可以基本上同时被运行,或者方框有时候可以以相反的顺序被运行,这取决于涉及的功能/动作。
[0013]在整个说明书和权利要求书中,术语可能具有上下文暗示或隐含的超越了明确说明的意思的微妙的意义。同样的,如本文所用的短语“在实施例中”并不一定指的是同一实施例,如本文所用的短语“在另一实施例中”并不一定指的是不同的实施例。所打算的是,例如,所要求保护的主题包括示例实施例的组合的全部或部分。
[0014]在一般情况下,可以至少部分地从上下文中的用法来理解术语。例如,术语,比如如本文中所用的“和”、“或”或“和/或”可以包括各种含义,其可能至少部分取决于使用这些术语的上下文。通常,如果用于关联列表,比如A、B或C,则“或”不仅意在表示A、B和C,这里用于包含意义,而且还表示A、B或C,这里用于独有意义。此外,如本文中所用的至少部分取决于上下文的术语“一个或多个”,可以用于描述单数意义的任何特征、结构或特性,或者可以用于描述复数意义的特征、结构或特性的组合。类似地,术语,比如“一”或“该”,再次,可以理解为传达单数用法或传达复数用法,至少部分取决于上下文。此外,术语“根据”可以理解为不一定旨在传达专属的一套因素,而是可能相反,允许不一定被明确说明的附加的因素的存在。
[0015]为本公开的目的,计算机可读介质以机器可读形式存储计算机数据,该数据可以包括计算机可运行的计算机程序代码。通过示例并且非限制的方式,计算机可读介质可以包括用于数据的有形或固定存储的计算机可读存储装置,或用于包含代码的信号的暂时解释的通信介质。如本文中所用的计算机可读存储介质,指的是物理或有形的存储装置(而不是信号),并且包括以任何方法或技术实施的用于信息(比如计算机可读指令、数据结构、程序模块或其它数据)的有形存储的不限于易失性和非易失性的、可移除和不可移除的介质。计算机可读存储介质包括,但不限于,RAM(随机存取存储器)、R0M、EPR0M、EEPR0M、闪存或其它固态存储器技术,CD-ROM、DVD或其它光存储装置,磁带盒、磁带、磁盘存储装置或其它磁存储设备,或可用于有形地存储期望的信息或数据或指令并可由计算机或处理器访问的任何其它物理或材料介质。
[0016]在各种实施例中,本公开的系统和方法基于当前位置、最终目的地、可支配的时间以及用户附近的兴趣点的人气和兴趣点间的旅行时间为用户提供建议旅行路线的服务。
[0017]图1是构成本公开各个实施例的基础的基本概念的高层图示。
[0018]在所示出的实施例中,用户A 112正在参观区域100并且正在起始位置120和结束位置130间行进。用户A —般不熟悉区域100,因此用户A112利用(比如)移动设备访问互联网可用旅行服务140,并请求从起始位置120行进到结束位置130的旅行路线。
[0019]在实施例中,旅行服务140利用多个不同的数据源判定区域100中的各个潜在的兴趣点。在实施例中,这种数据可以包括由用户114、116、118发布的对他们已经参观过的各个兴趣点(比如,例如,博物馆152、历史遗迹154和/或公园156)的评分。在实施例中,这种数据也可以包括由用户114、116和118发布到照片共享服务150的各个兴趣点152、154和156的照片。照片可以提供对兴趣点的整体人气和趣味的附加的深入了解,例如,与兴趣点相关的照片的数量是对兴趣点的趣味的衡量。照片还可以给出用户在一个兴趣点花费的时间长度的衡量,这提供对兴趣点的趣味的附加的衡量。
[0020]在实施例中,旅行服务140利用地图服务160提供的地图数据判定优化(除其它事项外)旅行时间和旅行路线包含的兴趣点152、154、156的数目的一个或多个通过区域100的建议旅行路线142。旅行服务随后给用户A 112提供建议的旅行路线142,例如,如在用户的移动设备上显示的地图或列表。
[0021]在实施例中,如在下文中更详细的描述的,旅行服务预先计算一张或多张兴趣点图表和通过区域100的路线,它组合利用用户的起始位置120和结束位置130在实时或接近实时的基础上来判定所建议的路线。
[0022]图2是示出在其中能实施本公开的系统和方法的网络的示例实施例的示意图。其它可能在,例如,布置或组件的类型上有变化的实施例,也旨在被包括在所要求保护的主题范围内。
[0023]如图所示,图2,例如,包括各种网络,比如广域网(WAN)(比如互联网250和无线网络220)。图2附加地包括各种用户设备,比如用户个人计算机242和244和用户移动设备,比如蜂窝电话202、智能电话204、PDA 206和平板计算机208。图2附加地包括各种服务器,比如在各种实施例中提供图片共享网址和网页服务、地图网址和网页服务以及旅行服务网址和网页服务的图片共享服务器262、地图服务服务器272和旅行服务服务器282。
[0024]用户设备202、204、206、208、242和244可以包括或可以运行多个操作系统,包括个人计算机操作系统,比如Windows、1S或Linux,或移动操作系统,比如1S、Android或Windows Mobile等。用户设备202、204、206、208、242和244可以包括或可以运行多个可能的应用程序,比如使能与其他设备的通信(比如(比如经由电子邮件、短信(SMS)、或彩信(MMS),包括经由网络,比如社交网络和照片共享服务,包括,例如,只提供几个可能的例子,FACEB00K、LINKEDIN、TWITTER、FLICKR或G00GLE+)传送一个或多个消息)的客户端软件应用程序。
[0025]在各种实施例中,用户移动设备202、204、206、208与一个或多个无线网络220连接。无线网络220可以使用单独的自组网、网状网、无线LAN(WLAN)网络、蜂窝网等。无线网络可以进一步包括终端、网关、路由器等通过无线射频链路等耦接的系统,其可以自由的、随机的移动或随意组织起来使得网络拓扑结构可以改变,有时甚至快速地改变。无线网络220可以进一步采用多种网络接入技术,包括长期演进(LTE)、WLAN、无线路由器(WR)网格或第二、第三、第四代(2G、3G或4G)蜂窝技术等。网络接入技术可以使设备(比如客户端设备)具有广域覆盖以及(例如)不同程度的移动性。
[0026]例如,网络220可以经由一种或多种网络接入技术,比如全球移动通信系统(GSM)、通用移动电信系统(UMTS)、通用分组无线业务(GPRS)、增强型数据GSM环境(EDGE)、3GPP长期演进(LTE)、高级LTE、宽带码分多址(WCDMA)、蓝牙、802.llb/g/n等等,使能RF或无线类型的通信。无线网络可以包括几乎任何类型的无线通信机制,通过这种无线通信机制信号可以在网络间或网络内的网络设备(比如客户端设备或计算设备)间被传送等。在各种实施例中,用户移动设备202、204、206、208可以附加地与一个或多个GPS服务230连接以获得实时定位信息。
[0027]服务器262、272、282可以能够例如经由有线或无线网络发送或接收信号,或可以能够处理或(例如在存储器中作为物理存储器的状态)储存信号。能够起到服务器的作用的设备可以包括,例如,专用机架式服务器、台式计算机、膝上型计算机、机顶盒、组合各种特征(比如前述装置的两个或多个特征)的集成设备等。服务器可以在配置或能力上有很大差异,但通常,服务器可以包括一个或多个中央处理单元和存储器。服务器还可以包括一个或多个大容量存储设备、一个或多个电源供应器、一个或多个有线或无线网络接口、一个或多个输入/输出接口或一个或多个操作系统,比如Windows Server、Mac OS X、Unix、Linux、FreeBSD 等等。
[0028]在实施例中,用户能够使用他们的各种设备202、204、206、208、242和244经由网络250访问由图片共享服务器262、地图服务服务器272和旅行服务服务器282提供的服务。此外,用户可以经由互联网加入,包括在由照片共享服务器262容纳的照片共享网站发布照片、访问由旅行服务服务器282容纳的旅行服务网站和网页服务,例如,来为兴趣点打分或请求旅行路线。在实施例中,由旅行服务服务器282容纳的旅行服务在旅行服务DB284中储存各种类型的旅行相关的数据,比如一张或多张兴趣点图以及通过各种区域的路线。
[0029]图3是示出旅行网页服务在一个或多个旅行服务服务器(比如图2的282中所显示的)上的实施的示例实施例示意图。在实施例中,用户310经由互联网,例如,使用各自的移动设备,经由互联网使用旅行网络服务前端访问旅行网页服务。在实施例中,虽然允许用户通过网络发送和检索数据的任何用户界面可以经由,比如,电子邮件被使用,但是旅行网页服务前端320是网站。
[0030]在实施例中,用户310请求旅行路线并将起始位置和结束位置提供给旅行网页服务前端320而且可以附加的提供用户的可用时间以及旅行路线实际的起始时间和结束时间。在各种实施例中,用户310的初始位置默认地被设置为用户的当前物理位置,这可以,例如,通过经由GPS、三角测量或其它常规技术判定用户310的移动设备的位置来判定。
[0031]在实施例中,旅行网页服务前端320随后调用后端API 330,从图表缓存340检索用户310的位置的预先计算的图表。如果用户310的位置的预先计算的图表不在缓存340中,则后端API 330利用图表搜索引擎350,例如,VESPA,在旅行服务数据库360中搜索用户310的位置的预先计算的图表。如果该图表被发现,则被下载到缓存。用户310的位置预先计算的的图表随后用于为用户310创建旅行路线,该旅行路线基于实时或接近实时地被返回给用户310。
[0032]在所示实施例中,由批处理组件370创建多个位置的预先计算的图表,如下文更详细的描述。在实施例中,批处理组件从用户320的角度看是离线的,也就是说,图表不是响应于用户请求被创建的,而是预计将来的使用被定期创建的。在实施例中,批处理组件370利用旅行服务数据库360中的数据(例如,兴趣点的用户评分)、照片共享服务器380中的数据(例如,兴趣点的用户照片)和地图服务器390中的数据。在实施例中,照片共享服务380和地图服务390容纳于不同的服务器并且可以由不同的服务提供商提供。
[0033]图4示出用于生成各个位置的旅行图表的计算机实施过程的实施例400。除非另有说明,否则应当理解所描述的关于图4的每个方框的过程由旅行服务提供商所保持或控制的计算设备中的至少一个来执行。在实施例中,这种计算设备可以是一个或多个图2中的旅行服务服务器282并且所描述的过程由批处理组件(比如,例如,图3的批处理组件370)执行。在实施例中,过程400使用/或生成的各种旅行相关的数据被存储与一个或多个数据库中,比如,例如,图2中的旅行服务DB 284。
[0034]在过程的框410中,使用计算设备检索与地理区域中的多个兴趣点相关的数据。在各个实施例中,地理区域可以表示城市、县、州或已知拥有一个或多个兴趣点的国家。在实施例中,多个兴趣点表示旅行网站或社交网站上地理区域中最受欢迎的兴趣点。
[0035]例如,兴趣点的人气可以由社交网站上对该兴趣点的“喜欢”的数量或旅行网站上对该兴趣点的正的评分的数量来判定。在实施例中,与多个兴趣点相关的数据可以包括,例如,地址、GPS定位、人气、邮编等。
[0036]在过程的框420中,使用计算设备从图片源检索多张图片,多张图片中的每一张与多个兴趣点中的一个相应的兴趣点相关并且进一步与多个用户中的相应的一个用户相关。在实施例中,图片源是照片共享网站比如FLICKR,使用照片共享网站提供的API对图片进行检索,例如,在照片共享网站中查询与具体的兴趣点和/或城市相关的图片。在实施例中,对图片以相反的时间顺序(比如,最新的在前)进行检索。在实施例中,多张图片中的每张图片进一步与一个用户ID相关联,例如,将每张相应的图片上传到图片数据源的用户的相应的用户ID。在实施例中,多张图片中的每一张进一步与图片相关数据相关联,该图片相关数据可以包括,例如,与图片相关联的地理位置(比如,捕获图片的设备的GPS定位)和/或日期和时间,例如,图片被捕获的日期和时间。
[0037]注意到尽管在所示实施例中,图片用于判定用户在兴趣点上花费的时间,但是在各种实施例中,可以使用与兴趣点、地理位置和用户相关联任何类型的带有地理标签的对象。例如,带有地理标签的对象可以包括来自移动设备的FAC0B00K地点签到、FOUR SQUARE/GOOGLE LATITUDE签到、TEITTER TWEET和FACEBOOK状态更新。注意到在各种实施例中,带有地理标签的对象和兴趣点间的关联可以基于任何数据,比如,例如,明确提到兴趣点的数据或,附加地或可替代地,离兴趣点在很短的、预定距离(比如,< 0.1千米)内的地理位置。
[0038]在过程的框430中,使用计算设备对多张图片进行过滤,使得具有不合需要的特性的图片被丢弃。在各种实施例中,这种不合需要的特性可以包括,但不限于:
[0039].具有错的地理位置的图片。
[0040]?来自在给定时间段和/或在给定兴趣点发布过少的图片的用户的图片。
[0041]?来自在给定时间段和/或在给定兴趣点发布过多的图片的用户的图片。
[0042]?来自是与图片有关的地理区域的居民的用户的图片。
[0043]?来自不是与图片有关的地理区域的居民的用户的图片。
[0044]如下所述是可以单独或以任何组合形式使用的各种过滤技术。在实施例中,对与多张图片中的每一张相关联的相应的地理位置进行验证,使得如果各个地理位置不在多个兴趣点中与图片有关的相应的兴趣点的阈值距离内,例如,5千米,则相应的图片被丢弃。
[0045]在另一实施例中,附加地或可替代地,根据与相应的图片相关联的相应的用户ID以及与相应的图片相关联的相应的日期和时间对多张图片进行分类和分组。如果相应的用户ID和相应的日期的图片的相应数量不大于图片数量的阈值,则多张图片中与相应的日期和相应的用户ID相关联的相应的图片被丢弃。
[0046]在另一实施例中,附加地或可替代地,多张图片中与是地理区域的居民的用户相关联的图片被丢弃。在实施例中,可以通过从与多张图片的每张图片相关联的每个相应的用户ID的数据源中检索用户配置文件数据直接判定这种住处。在相应的用户ID与居住在地理区域内或其附近(比如,50km内)的用户有关的情况下,相应用户ID的所有的相应的图片被丢弃。
[0047]在另一实施例中,附加地或可替代地,可以间地推断住处。在各个实施例中,根据与相应的图片相关联的相应的用户ID以及与相应的图片相关联的相应的日期和时间对多张图片进行分类和分组。在实施例中,在与给定用户ID和地理区域相关联的图片数量超过图片数量的阈值的情况下,很可能用户ID是居民的用户ID,从而与该用户ID相关联的相应的图片被丢弃。在另一实施例中,附加地或可替代地,在相应的用户ID在地理位置中花费的总天数超过阈值数的情况下,与该用户ID相关联的相应的图片被丢弃。
[0048]在另一实施例中,附加地或可替代地,多张图片中与不是地理区域的居民的用户相关联的图片被丢弃。在实施例中,可以通过从与多张图片的每张图片相关联的每个相应的用户ID的数据源中检索用户配置文件数据直接判定这种住处。在相应的用户ID与不居住在地理区域内或其附近(比如,50km内)的用户相关联的情况下,相应的用户ID的所有相应的图片被丢弃。
[0049]在实施例中,附加地或可替代地,多张图片中与异常或失真的数据相关的图片被丢弃。在各个实施例中,根据与相应的图片相关联的相应的用户ID以及与相应的图片相关联的相应的日期和时间对多张图片进行分类和分组。在实施例中,在与相应的用户和相应的兴趣点相关联的多张图片中的最早的相应的图片的相应的日期和时间和与相应的用户和相应的兴趣点相关联的多张图片中的最晚的相应的图片的相应的日期和时间的时间间隔少于最小阈值的情况下,例如,3分钟,则与相应的用户和相应的兴趣点相关联的相应的图片被丢弃。
[0050]在实施例中,在与相应的用户和相应的兴趣点相关联的多张图片中的最早的相应的图片的相应的日期和时间和与相应的用户和相应的兴趣点相关联的多张图片中的最晚的相应的图片的相应的日期和时间的时间间隔少于最小阈值的情况下,例如,3分钟,则与相应的用户和相应的兴趣点相关联的相应的图片被丢弃。
[0051]在过程的框440中,使用多张图片判定用户在多个兴趣点的每个相应的兴趣点上花费的相应平均时间。在实施例中,通过用参观相应的兴趣点的用户的总数量去除所有用户在相应的兴趣点上花费的总时间来计算用户在给定兴趣点上花费的平均时间。在实施例中,通过对与相应的用户和相应的兴趣点相关联的多张图片中的最早的相应的图片的相应的曰期和时间和与相应的用户和相应的兴趣点相关联的多张图片中的最晚的相应的图片的相应的日期和时间相减判定给定用户在给定兴趣点上花费的时间。
[0052]在过程的框450中,使用计算设备判定多个旅行时间,多个旅行时间的每个相应的旅行时间包括多个兴趣点中的相应的第一兴趣点和多个兴趣点中的相应的第二兴趣点间的旅行时间。在实施例中,多个旅行时间涉及多个兴趣点中的的相应的两个兴趣点的所有的组合。
[0053]在实施例中,通过使用计算设备向地图服务发出映射查询来判定多个旅行时间的每个相应的旅行时间,其中映射查询包括相应的第一和第二兴趣点的相应的地址。在兴趣点的地址不可用的情况下,通过使用计算设备向地图服务发出映射查询判定相应的旅行时间,其中映射查询包括相应的第一和第二兴趣点的相应的地理位置。
[0054]在过程的框460中,基于与多个兴趣点相关的数据、用户在每个相应的的兴趣点上花费的相应的平均时间和多个旅行时间,使用计算设备对地理位置创建对地理位置的旅行图表。在实施例中,旅行图表包括多个节点,每个相应的的节点对应多个兴趣点的相应的一个兴趣点。
[0055]在实施例中,多个节点的每个相应的节点与相应的节点级数据相关联,除此以外,其可以包括以下各项:
[0056].表示为地址和/或地理坐标的位置。
[0057].相应的节点与所有(或大部分)其它节点间的旅行时间。
[0058].节点的相应的人气得分。
[0059].访问节点的用户的相应的数量。
[0060].用户在相应的节点上花费的相应平均时间。
[0061]在实施例中,使用计算设备将对地理位置的旅行图表保存到旅行服务数据库以便将来的检索和用户使用。在实施例中,为多个地理位置串行或并行地运行旅行图表创建过程500,多个地理位置的多个旅行图表被创建并被储存在旅行服务数据库中。
[0062]图5示出利用各个地理位置的旅行图表为用户生成优化的旅行路线的计算机可实施过程的实施例500。除非另有规定,否则应该理解所描述的关于图5的各个框的处理是至少由旅行服务提供商维持或控制的一个计算设备执行的。在实施例中,这种计算设备可以是一个或多个图2的旅行服务服务器282,所描述的处理由在旅行服务服务器282上运行的各种组件(例如,图3的旅行网页服务前端320、后端API 330、图表缓存340和搜索引擎350)执行。在实施例中,过程500使用和/或生成的各种旅行相关的数据被储存在一个或多个数据库上比如,例如,图2的旅行服务DB284。
[0063]在过程的框510中,使用计算设备接收到来自用户设备的旅行路线请求,该请求包括起始位置和结束位置以及时间约束。在各种实施例中,起始和结束位置可以用任何传统的方式来表示比如,例如,街道地址、纬度和经度和/或GPS坐标。在各个实施例中,时间约束包括用户可用的时间量。在各个实施例中,时间约束附加地或可替代地包括对期望路线的实际的起始和结束时间。
[0064]请求可以经由任何传统的方式被接收比如,经由旅行服务网站上的用户接口或经由消息服务比如,例如,邮件或短信服务。在实施例中,起始和结束位置由发出请求的用户在用户设备上手动输入。在实施例中,发出请求的用户只提供结束位置,起点位置被设置为用户设备的当前位置。在实施例中,用户设备的当前位置使用本领域的任何传统技术被判定,例如,经由GPS或用户设备的三角测量。
[0065]在过程的框520中,使用计算设备、使用起始位置和结束位置检索得到对地理区域的旅行图表,使得起始位置和结束位置落入地理区域内。在实施例中,对地理区域的旅行图表与上面详细讨论的由图4中示出的过程400创建的旅行图表类似,或相同。
[0066]在实施例中,对地理区域的旅行图表包括多个节点,每个相应的节点对应地理区域中多个兴趣点中相应的一个兴趣点。在实施例中,多个节点的每个相应的节点与相应的节点级数据相关联,除此以外,其可以包括以下各项:
[0067].表示为地址和/或地理坐标的位置。
[0068].相应的节点与所有(或大部分)其它节点间的旅行时间。
[0069]?节点的相应的人气得分。
[0070].访问节点的用户的相应的数量。
[0071].用户在相应的节点上花费的相应平均时间。
[0072]在过程的框530中,使用计算设备计算得到对多个节点的每个节点的相应的得奖分数。在实施例中,使用考虑一个或多个以下因素的公式计算得到相应的得奖分数:
[0073]?节点的相应的人气得分。
[0074].访问节点的用户的相应的数量。
[0075].用户在相应的节点上花费的相应的平均时间。
[0076]在实施例中,使用以下公式计算多个节点中的每个节点的相应的得奖分数:
[0077](节点的人气得分)*(访问节点的用户数量)*(用户以分钟为单位访问节点的平均时间)/100
[0078]在过程的框540中,使用计算设备选择多个节点中离起始位置最近的第一节点。在过程的框550中,使用计算设备选择多个节点中离结束位置最近的第二节点。在各个实施例中,多个节点的第一和第二节点的选择可以附加地基于多个节点的每个相应的节点的相应的人气。例如,如果多个节点到起始或结束位置的距离近似一样,例如,不多于+/-0.1千米,则最受欢迎的节点将被选择。
[0079]在过程的框560中,使用计算设备、使用旅行图表和多个节点的每个节点相应的得奖分数,使得旅行路线包括多个节点的第一节点、多个节点的第二节点和从多个节点中选择的附加的节点。在实施例中,从多个节点中选择多个附加的节点使得多个附加的节点的总的得奖分数在时间约束内最大化。
[0080]在实施例中,使用递归的贪婪算法选择多个附加的节点。在实施例中,采用递归的贪婪算法与开放的旅行图表协作,其中旅行时间不被所有的节点可知。在实施例中,递归的贪婪算法标识节点间的最短路径,并且可以,在某些实施例中,在某些内部计算中利用迪杰斯特算法。在实施例中,递归的贪婪算法附加地在任何计算路径上提供最大数量的节点作为系统默认。
[0081]在实施例中,基于时间约束可以忽略一个或多个节点。例如,如果给定兴趣点在时间约束暗示的的时间是关闭的,则与那个时间相关联的节点被忽略。
[0082]在过程的框570中,旅行路线的表示使用计算设备给用户设备提供,例如,带高亮的地图。
[0083]图6是示出示例计算设备内部架构的框图。在实施例中,根据本公开的一个或多个实施例图6可以表示支持如图2中所示的旅行服务系统的组件的服务器的内部架构。
[0084]如图6的示例中所示,内部架构600包括一个或多个与至少一个计算机总线602连接的处理单元(本文也称为CPU) 612。与计算机总线602连接的还有一个/多个永久存储介质606、网络接口 614、存储器604(比如,RAM、运行时间暂态存储器、只读存储器(ROM)等)、作为能读和/或写包括可移除介质(比如软盘、⑶-ROM、DVD等介质)的介质的驱动器的接口的媒体磁盘驱动器接口 608、作为对监视器或其它显示设备的接口的显示屏接口610、作为对键盘的接口的键盘接口 616、作为对鼠标或其它定点设备的接口的定点设备接口 618以及许多其它没被单独显示的接口,比如并行和串行端口接口、通用串行总线(USB)
接P等等。
[0085]存储器604连接到计算机总线602以在软件程序(比如操作系统、应用程序、设备驱动器和包括程序代码的软件模块,当该程序代码被CPU612运行时,执行涉及上述图4和图5的框所描述的处理)运行期间将存储在存储器604中的信息提供给CPU 612。CPU 612首先从存储装置(比如,存储器604、一个/多个存储介质606、可移除媒体驱动器和/或其它存储设备)加载计算机可运行过程步骤。CPU 612随后可以运行所存储的处理步骤以运行装载的计算机可读过程步骤。所存储的数据,比如,存储设备存储的数据,可以在计算机可运行过程步骤的运行过程中被CPU 612访问。
[0086]本领域技术人员将识别本公开的方法和系统可以以许多方式被实施,因此并不受前述典型的实施例和示例的限制。也就是说,由单个或多个组件执行的功能元件,以硬件和软件或固件的各种组合的方式,和单独的功能,可以被分配在客户端级或服务器级或两者中。在这方面,本文所描述的不同的实施例的任何数量的特征可以被组合成单个或多个实施例,替代实施例可能具有少于或多于本文描述的所有的特征。功能也可以,全部或部分地,以现在已知或即将被知晓的方式被分配在多个组件间。因此,在实现本文描述的功能、特征、接口和优选中可能有无数种软件/硬件/固件的组合。此外,本公开的范围覆盖执行所描述的特征和功能和接口的传统的公知的方式,以及可能对本文所描述的硬件或软件或固件组件做出的那些现在和将来可以被本领域技术人员理解的变化和修改。
[0087]此外,本公开中作为流程图所展示和描述的方法的实施例通过示例的方式被提供以提供对技术的更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。替代实施例被考虑,其中各个操作的顺序被改变并且其中被描述为更大的操作的一部分的子操作被独立的执行。
[0088]虽然各种实施例描述了本公开的目的,这些实施例不应被视为将本公开的教导限制为那些实施例。可以对上文所描述的元件和操作做出各种变化和修改以获得属于本公开中所描述的系统和过程的范围内的结果。
【权利要求】
1.一种方法,包括: 使用计算设备从用户设备接收对旅行路线的请求,所述请求包括地理区域内的起始位置和结束位置以及时间约束; 使用所述计算设备检索所述地理区域的旅行图表,所述旅行图表包括多个节点,每个所述节点对应多个兴趣点中的相应的一个所述兴趣点,其中多个所述节点中的每个所述节点与相应的节点级数据相关联,所述节点级数据包括相应的位置、相应的节点与至少多个节点的子集间的多个旅行时间、节点相应的人气得分、访问节点的用户的相应的数量和用户在相应的节点上花费的相应的平均时间; 使用所述计算设备为多个所述节点中的每个所述节点计算相应的得奖分数; 使用所述计算设备选择多个所述节点中离所述起始位置最近的第一节点; 使用所述计算设备选择多个所述节点中离所述结束位置最近的第二节点; 使用所述计算设备、使用所述旅行图表和多个所述节点中的每个所述节点的相应的得奖分数判定所述旅行路线,使得所述旅行路线包括多个所述节点中的所述第一节点、多个所述节点中的所述第二节点和从多个所述节点中选择的附加的节点,从多个所述节点中选择多个所述附加的节点使得多个所述附加的节点的总的所述得奖分数在时间约束内最大化;以及 使用所述计算设备将所述旅行路线的表示提供给用户设备。
2.如权利要求1所述的方法,其中多个所述节点中的每个所述节点的相应的得奖分数通过使用所述节点相应的人气得分、访问所述节点的用户的相应的数量和用户在相应的所述节点上花费的相应的平均时间来判定。
3.如权利要求2所述的方法,其中多个所述节点中的每个所述节点的相应的得奖分数使用下列公式的算法来判定: (所述节点相应的人气得分)* (访问所述节点的用户的相应的数量)* (用户在相应的所述节点上花费的相应的平均时间)/100。
4.如权利要求1所述的方法,其中使用贪婪的递归算法来选择多个所述附加的节点。
5.如权利要求4所述的方法,其中所述贪婪的递归算法标识节点间的最短路径。
6.如权利要求1所述的方法,其中所述时间约束反映用户的可用时间以及期望的起始时间和期望的结束时间。
7.一种方法,包括: 使用计算设备检索与地理区域中多个兴趣点相关的兴趣点数据,多个所述兴趣点中的每个所述兴趣点的所述兴趣点数据包括相应的人气得分和相应的位置; 使用所述计算设备检索包括多个带地理标签的对象的带地理标签的数据,多个所述带地理标签的对象中的每个所述带地理标签的对象与多个所述兴趣点中的相应的一个所述兴趣点相关并且包括相应的日期和时间以及多个用户中相应的一个用户; 使用所述计算设备、使用所述带地理标签的数据为多个所述兴趣点中的每个所述兴趣点判定多个用户在相应的所述兴趣点花费的相应的平均时间; 使用所述计算设备判定多个旅行时间,多个所述旅行时间中的每个所述旅行时间包括多个所述兴趣点中的相应的第一兴趣点和多个所述兴趣点中的相应的第二兴趣点间的所述旅行时间;以及 使用所述计算设备基于所述兴趣点数据、多个用户在相应的所述兴趣点花费的相应的平均时间和多个所述旅行时间为地理位置创建旅行图表,使得所述旅行图表包括多个节点,每个所述节点对应多个所述兴趣点中的相应的一个所述兴趣点,其中多个所述节点中的每个相应的所述节点与相应的节点级数据相关联,所述节点级数据包括相应的位置、相应的节点与至少多个节点的子集间的多个旅行时间、节点相应的人气得分、访问节点的用户的相应的数量和用户在相应的节点上花费的相应的平均时间。
8.如权利要求7所述的方法, 其中通过用参观相应的所述兴趣点的用户的相应的总数量去除多个用户在相应的所述兴趣点上花费的相应的总时间来计算用户在相应的所述兴趣点上花费的平均时间; 其中,对参观相应的所述兴趣点的多个用户中的每个用户,通过对与相应的用户和相应的所述兴趣点相关联的多个所述带地理标签的对象中的最早的相应的所述带地理标签的对象的相应的日期和时间和与相应的用户和相应的兴趣点相关联的多个所述带地理标签的对象中的最晚的相应的所述带地理标签的对象的相应的日期和时间相减来判定相应的用户花费的相应的时间。
9.如权利要求7所述的方法,进一步包括: 使用所述计算设备利用过滤技术对多个所述带地理标签的对象进行过滤,使得多个所述带地理标签的对象的子集被丢弃。
10.如权利要求9所述的方法,其中所述过滤技术包括对与多个所述带地理标签的对象中的每个所述带地理标签的对象相关联的相应的位置进行验证,使得当所述相应的位置不在所述带地理标签的对象与之相关的多个所述兴趣点中的相应的所述兴趣点的阈值距离内时,相应的所述带地理标签的对象被丢弃。
11.如权利要求9所述的方法,其中所述过滤技术包括为多个用户中的每个用户判定相应的用户和相应的日期的所述带地理标签的对象的相应的数量,使得当相应的用户和相应的日期的所述带地理标签的对象的相应的数量不大于带地理标签的对象的阈值数量时,与相应的日期和相应的用户ID相关联的多个所述带地理标签的对象中的相应的所述带地理标签的对象被丢弃。
12.如权利要求9所述的方法,其中所述过滤技术包括为多个用户中的每个用户判定相应的用户是否是所述地理区域的居民,使得当多个用户中的相应的用户是所述地理区域的居民时,相应的所述带地理标签的对象与相应的用户相关联。
13.如权利要求9所述的方法,其中所述过滤技术包括为多个用户中的每个用户判定与相应的用户和相应的所述兴趣点相关联的多个所述带地理标签的对象中的最早的相应的所述带地理标签的对象的相应的日期和时间和与相应的用户和相应的兴趣点相关联的多个所述带地理标签的对象中的最晚的相应的所述带地理标签的对象的相应的日期和时间之间的时间间隔,使得当相应的所述时间间隔小于最小阈值时,与相应的用户和相应的兴趣点相关联的相应的所述带地理标签的对象被丢弃。
14.如权利要求7所述的方法,其中多个所述兴趣点与网站上固定数量的最受欢迎的兴趣点相关。
15.如权利要求7所述的方法,其中利用地图服务判定多个所述旅行时间。
16.如权利要求7所述的方法,其中多个所述带地理标签的对象中的每个所述带地理标签的对象是图片。
17.用于将对一种方法的计算机可读指令有形的存储于其上的非暂态计算机可读存储介质,包括以下功能: 从用户设备接收对旅行路线的请求,所述请求包括在地理区域内的起始位置和结束位置以及时间约束; 检索所述地理区域的旅行图表,所述旅行图表包括多个节点,每个所述节点对应多个兴趣点中的相应的一个所述兴趣点,其中多个所述节点中的每个所述节点与相应的节点级数据相关联,所述节点级数据包括相应的位置、相应的节点与至少多个节点的子集间的多个旅行时间、节点相应的人气得分、访问节点的用户的相应的数量和用户在相应的节点上花费的相应的平均时间; 为多个所述节点中的每个所述节点计算相应的得奖分数; 选择多个所述节点中离所述起始位置最近的第一节点; 选择多个所述节点中离所述结束位置最近的第二节点; 使用所述旅行图表和多个所述节点中的每个所述节点的相应的得奖分数判定所述旅行路线,使得所述旅行路线包括多个所述节点中的所述第一节点、多个所述节点中的所述第二节点和从多个所述节点中选择的附加的节点,从多个所述节点中选择多个所述附加的节点使得多个所述附加的节点的总的所述得奖分数在时间约束内最大化;以及将所述旅行路线的表示提供给用户设备。
18.用于在其上有形地存储计算机可读指令的非暂态计算机可读存储介质,所述计算机可读指令用于包括下述项的方法: 检索与地理区域中多个兴趣点相关的兴趣点数据,多个所述兴趣点中的每个所述兴趣点的所述兴趣点数据包括相应的人气得分和相应的位置; 检索包括多个带地理标签的对象的带地理标签的数据,多个所述带地理标签的对象中的每个所述带地理标签的对象与多个所述兴趣点中的相应的一个所述兴趣点相关并且包括相应的日期和时间以及多个用户中相应的一个用户; 使用所述带地理标签的数据为多个所述兴趣点中的每个所述兴趣点判定多个用户在相应的所述兴趣点花费的相应的平均时间; 判定多个旅行时间,多个所述旅行时间中的每个所述旅行时间包括多个所述兴趣点中的相应的第一兴趣点和多个所述兴趣点中的相应的第二兴趣点间的所述旅行时间;以及基于所述兴趣点数据、多个用户在相应的所述兴趣点花费的相应的平均时间和多个所述旅行时间为地理位置创建旅行图表,使得所述旅行图表包括多个节点,每个所述节点对应多个所述兴趣点中的相应的一个所述兴趣点,其中多个所述节点中的每个相应的所述节点与相应的节点级数据相关联,所述节点级数据包括相应的位置、相应的节点与至少多个节点的子集间的多个旅行时间、节点相应的人气得分、访问节点的用户的相应的数量和用户在相应的节点上花费的相应的平均时间。
19.一种计算设备,包括: 处理器; 将由所述处理器运行的程序逻辑有形地存储于其上的存储介质,所述程序逻辑包括: 用于以下目的的由所述处理器运行的逻辑: 由所述处理器运行的所述逻辑,用于从用户设备接收对旅行路线的请求,所述请求包括在地理区域内的起始位置和结束位置以及时间约束; 由所述处理器运行的所述逻辑,用于检索所述地理区域的旅行图表,所述旅行图表包括多个节点,每个所述节点对应多个所述兴趣点中的相应的一个所述兴趣点,其中多个所述节点中的每个相应的所述节点与相应的节点级数据相关联,所述节点级数据包括相应的位置、相应的节点与至少多个节点的子集间的多个旅行时间、节点相应的人气得分、访问节点的用户的相应的数量和用户在相应的节点上花费的相应的平均时间。 由所述处理器运行的所述逻辑,用于为多个所述节点中的每个所述节点计算相应的得奖分数; 由所述处理器运行的所述逻辑,用于选择多个所述节点中离所述起始位置最近的所述第一节点; 由所述处理器运行的所述逻辑,用于选择多个所述节点中离所述结束位置最近的所述第二节点; 由所述处理器运行的所述逻辑,用于使用所述旅行图表和多个所述节点中的每个所述节点的相应的得奖分数判定所述旅行路线,使得所述旅行路线包括多个所述节点中的所述第一节点、多个所述节点中的所述第二节点和从多个所述节点中选择的附加的节点,从多个所述节点中选择多个所述附加的节点使得多个所述附加的节点的总的所述得奖分数在时间约束内最大化;以及 将所述旅行路线的表示提供给用户设备。
20.一种计算设备,包括: 处理器; 将由所述处理器运行的程序逻辑有形地存储于其上的存储介质,所述程序逻辑包括: 由所述处理器运行的逻辑,用于检索与地理区域中多个兴趣点相关的兴趣点数据,多个所述兴趣点中的每个所述兴趣点的所述兴趣点数据包括相应的人气得分和相应的位置; 由所述处理器运行的所述逻辑,用于检索包括多个带地理标签的对象的带地理标签的数据,多个所述带地理标签的对象中的每个所述带地理标签的对象与多个所述兴趣点中的相应的一个所述兴趣点相关并且包括相应的日期和时间以及多个用户中相应的一个用户; 由所述处理器运行的所述逻辑,用于使用所述带地理标签的数据为多个所述兴趣点中的每个所述兴趣点判定多个用户在相应的所述兴趣点花费的相应的平均时间; 由所述处理器运行的所述逻辑,用于判定多个旅行时间,多个所述旅行时间中的每个所述旅行时间包括多个所述兴趣点中的相应的第一兴趣点和多个所述兴趣点中的相应的第二兴趣点间的所述旅行时间;以及 由所述处理器运行的所述逻辑,用于基于所述兴趣点数据、多个用户在相应的所述兴趣点花费的相应的平均时间和多个所述旅行时间为地理位置创建旅行图表,使得所述旅行图表包括多个节点,每个所述节点对应多个所述兴趣点中的相应的一个所述兴趣点,其中多个所述节点中的每个相应的所述节点与相应的节点级数据相关联,所述节点级数据包括相应的位置、相应的节点和至少多个节点的子集间的多个旅行时间、节点相应的人气得分、访问节点的用户的相应的数量和用户在相应的节点上花费的相应的平均时间。
【文档编号】G06Q50/14GK104169961SQ201380015781
【公开日】2014年11月26日 申请日期:2013年3月12日 优先权日:2012年3月29日
【发明者】艾伦·马哈帕托, 安舒尔·萨奥, 马特·克林恩, 盖·海浦沃斯 申请人:雅虎公司