用于位置确定的系统和方法
相关申请的交叉引用
本公开要求于2013年10月18日提交的第61/892649号美国临时专利申请的优先权和权益,其全文通过引用结合于此。
技术领域
本公开总体上涉及位置确定。更具体地,本公开涉及用于在无线通信网络中进行基于服务器的位置确定的系统。
背景技术
无线移动设备可以包括一个或多个位置感知应用,其被配置为执行基于位置的任务,诸如店铺定位和换乘路线。位置感知应用依赖于定位方法来确定无线移动设备的位置。定位方法被配置为整合无线移动设备中的卫星定位系统接收器并且仅通过使用来自卫星的信号而指定无线移动设备的实时位置。基于卫星的定位可以提供高度准确性,但是要求卫星和无线移动设备之间具有良好的视线。在卫星定位信号很少被遮挡的空旷区域,无线移动设备能够从卫星接收到充分的视线信号。然而,基于卫星的定位在无线移动设备处于阴影区域中时几乎是无效的。另外,接收和处理卫星定位信号会消耗相当的能量并因此缩短电池续航时间。
发明内容
依据这里所描述的技术,一种用于位置确定的系统包括耦合至客户端设备的位置提供器,其执行参考数据传递功能,该参考数据传递功能生成位置数据并且经由数据管理通信接口将位置数据提供至数据引擎服务器。该系统还包括数据引擎服务器,其执行参考数据获取功能,该参考数据获取功能接收位置数据,将位置数据形成为与无线站点相关联的群组,在无线站点信息表中识别无线站点,从位置数据中排除一个或多个异常值,从位置数据库提取历史位置数据,并且将该位置数据与历史位置数据相结合;执行站点定位计算功能,该站点定位计算功能确定无线站点的估计的位置并且确定与无线站点的估计的位置相关联的估计的不确定度,并且确定无线站点的覆盖区域长度和无线站点的传输信号范围;并且执行参考数据管理功能,该参考数据管理功能在逻辑上管理位置数据精化和位置数据分布。该系统进一步包括位置数据库,其存储位置数据,每个位置数据将位置的定位信息与用于在该位置处提供无线通信的无线站点的标识符以及在该位置处接收的信号的强度相关联。
在一个实施例中,一种用于位置确定的系统包括耦合至客户端设备的位置提供器,其执行参考数据传递功能,该参考数据传递功能生成位置请求数据并且经由位置确定通信接口将位置请求数据提供至定位引擎服务器。该系统还包括定位引擎服务器,其执行定位数据获取功能,该定位数据获取功能接收位置请求数据,在无线站点信息表中识别无线站点,从位置数据库提取与该无线站点相关联的位置数据的群组,并且针对该无线站点在该位置数据的群组中选择子集;并且执行设备定位计算功能,该设备定位计算功能基于所选择的子集中的位置数据来确定客户端设备的位置并且确定与所确定的客户端设备的位置相关联的估计的不确定度。
在另一个实施例中,一种用于位置确定的系统包括辅助数据信息表,其存储辅助数据,每个辅助数据包括无线站点的标识符、用于无线站点的位置的定位信息、多项式系数以及信号的强度的可工作范围。该系统还包括数据引擎服务器,其执行辅助数据传递功能,该辅助数据传递功能基于位置数据库中的位置数据而确定辅助数据,从辅助数据信息表获取辅助数据的集合,并且将辅助数据的集合提供至客户端设备。该系统进一步包括耦合至客户端设备的位置提供器,其执行参考数据传递功能,该参考数据传递功能获取辅助数据的集合,将辅助数据的集合存储在存储器中,生成位置请求数据,并且将位置请求数据提供至客户端位置确定功能;并且执行客户端位置确定功能,该客户端位置确定功能接收位置请求数据,在存储器中识别无线站点,从存储器提取与无线站点相关联的辅助数据,以及确定客户端设备的位置。
依据这里所描述的教导,一种用于位置确定的方法包括使用耦合至客户端设备的位置提供器执行参考数据传递功能,该参考数据传递功能包括生成位置数据并且经由数据管理通信接口将位置数据提供至数据引擎服务器。该方法还包括:使用数据引擎服务器执行参考数据获取功能,该参考数据获取功能包括接收位置数据,将位置数据形成为与无线站点相关联的群组,在无线站点信息表中识别无线站点,从位置数据中排除一个或多个异常值,从位置数据库提取历史位置数据,并且将该位置数据与历史位置数据相结合;使用该数据引擎服务器执行站点定位计算功能,该站点定位计算功能包括确定无线站点的估计的位置并且确定与无线站点的估计的位置相关联的估计不确定度,并且确定无线站点的覆盖区域长度和无线站点的传输信号范围;并且使用该数据引擎服务器执行参考数据管理功能,该参考数据管理功能包括在逻辑上管理位置数据精化和位置数据分布。该方法进一步包括使用位置数据库存储位置数据,每个位置数据将位置的定位信息与用于在该位置处提供无线通信的无线站点的标识符以及在该位置处接收的信号的强度相关联。
在一个实施例中,一种用于位置确定的方法包括:使用耦合至客户端设备的位置提供器执行参考数据传递功能,该参考数据传递功能包括生成位置请求数据并且经由位置确定通信接口将位置请求数据提供至定位引擎服务器。该方法还包括使用定位引擎服务器执行定位数据获取功能,该定位数据获取功能包括接收位置请求数据,在无线站点信息表中识别无线站点,从位置数据库提取与该无线站点相关联的位置数据的群组,并且针对该无线站点在该位置数据的群组中选择子集;并且使用该定位引擎服务器执行设备定位计算功能,该设备定位计算功能包括基于所选择的子集中的位置数据而确定客户端设备的位置并且确定与所确定的客户端设备的位置相关联的估计的不确定度。
在另一个实施例中,一种用于位置确定的方法包括使用辅助数据信息表存储辅助数据,每个辅助数据包括无线站点的标识符、用于无线站点的位置的定位信息、多项式系数以及信号的强度的可工作范围。该方法还包括:使用数据引擎服务器执行辅助数据传递功能,该辅助数据传递功能包括基于位置数据库中的位置数据来确定辅助数据,从辅助数据信息表获取辅助数据的集合,并且将辅助数据的集合提供至客户端设备。该方法进一步包括:使用耦合至客户端设备的位置提供器执行参考数据传递功能,该参考数据传递功能包括接收辅助数据的集合,将辅助数据的集合存储在存储器中,生成位置请求数据,以及将位置请求数据提供至客户端位置确定功能;以及使用该位置提供器来执行客户端位置确定功能,该客户端位置确定功能包括接收位置请求数据,在存储器中识别无线站点,从存储器提取与无线站点相关联的辅助数据,并且确定客户端设备的位置。
附图说明
图1是示出根据本公开实施例的基于服务器的定位系统架构的示例图。
图2是示出根据本公开实施例的数据引擎服务器处理位置数据的示例流程图。
图3是示出根据本公开实施例的定位引擎服务器确定客户端设备的位置的示例流程图。
图4是示出根据本公开实施例的客户端设备确定客户端设备的位置的示例流程图。
具体实施方式
本公开描述了一种提供用于访问服务器以提供始终在线的位置感知的主控服务模型的系统架构。该系统架构被基于服务器网络的辅助而得到支持,该基于服务器网络的辅助在蜂窝和WiFi技术中有所加强以增大客户端设备的定位能力。该系统架构提供了能够被分类为服务器所生成的服务和客户端所生成的服务的位置服务。服务器所生成的服务是在基于服务器的定位系统内生成位置的定位信息的服务。客户端所生成的服务是在客户端设备内生成位置的定位信息的服务。
图1是示出根据本公开实施例的基于服务器的定位系统架构100的示例图。如图1所示,系统架构100可以包括一系列单元,其中每个单元用来提供具体功能。这些单元可以包括存储在存储装置中并且随后在处理器上执行以提供功能的软件,适于提供单元的功能的硬件,或者共同工作以提供单元的功能的软件和硬件的组合。所描绘的几何图形可适于图示出参考图2至4的任意一个示例性示图,或者本公开范围内的任意数量的其它处理。更具体地,系统架构100由四个组件所构成:客户端设备110、数据引擎服务器120、定位引擎服务器130和位置数据库150。
客户端设备110可以是任意类型的无线移动设备,诸如智能电话、膝上计算机、平板计算机、可佩戴电子设备等,其被配置为整合了卫星定位系统接收器(未示出)、蜂窝收发器(未示出)和/或无线收发器(未示出)的功能。卫星定位系统接收器可以通过从至少四个卫星接收卫星信号而提供位置的定位信息。位置的定位信息一般涉及包括客户端设备110的经度坐标、纬度坐标和海拔坐标的地理坐标。在一个示例中,位置的定位信息被表示为经度坐标和纬度坐标的配对。蜂窝收发器可以根据各种蜂窝技术而与一个或多个蜂窝站点进行通信以提供在一个位置处的蜂窝通信的指纹,上述蜂窝技术诸如全球通信系统(GSM)、码分多址(CDMA)、宽带码分多址(WCDMA)、时分同步码分多址(TD-SCDMA)、长期演进(LTE)等。无线收发器可以根据各种通信协议与一个或多个接入点进行通信,上述通信结束诸如基于电气与电子工程师学会(IEEE)802.11的协议(例如WiFi网络),或者基于IEEE 802.15的协议(例如蓝牙网络)等等以提供在一个位置处的无线通信的指纹。该指纹包括覆盖该位置处的通信的无线站点(例如,蜂窝站点或接入点)的标识符以及在该位置处所接收的无线信号的特性。在一个示例中,在该位置处接收的无线信号的特性可以是在该位置处所接收的信号强度指示符。在另一个示例中,在该位置处接收的无线信号的特性可以是在该位置处所接收的信号的往返时间。
客户端设备110安装有用于进行定位的位置提供器115。在一个示例中,安装有位置提供器的客户端设备可以像数据引擎服务器120提供位置数据。在另一个示例中,具有位置提供器的客户端设备可以从定位引擎服务器130或者位置提供器自身获得位置服务。位置提供器115可以包括多个适当组件(未示出),诸如数据获取器、数据处理器、位置估计器等,其中每个用来提供具体的功能。基于多个适当组件的位置提供器115执行参考数据传递功能(RDDF)112和客户端位置确定功能(CLDF)113。根据本公开的实施例,在客户端设备的用户启动卫星定位系统接收器以允许客户端设备提供有关路途的方向信息时,RDDF 112可以执行生成位置数据、传递位置数据的功能。该位置数据能够根据客户端设备基于卫星的位置确定、客户端设备的能力和客户端设备的通信网络而生成。每个位置数据包括位置的定位信息、用于在该位置处提供无线通信连接的无线站点的标识符,以及在该位置处所接收的无线信号的特性。当基于卫星的位置确定可用于该客户端设备时,RDDF 112可以通过网络通信连接向数据引擎服务器120提供位置数据。该通信连接可以是用于实施通信协议的软件协议,诸如传输控制协议/互联网协议(TCP/IP)、超文本传输协议(HTTP)等。
根据本公开的另一个实施例,虽然客户端设备的用户并没有启动卫星定位接收器但是需要获知其位置时,RDDF 112能够执行生成位置请求数据、传递位置请求数据的功能。位置请求数据能够基于客户端设备的能力和客户端设备的通信网络而生成。在一个示例中,当基于卫星的位置确定对于客户端设备并不可用时,RDDF 112可以通过网络通信连接将位置请求数据提供至定位引擎服务器130以便获得位置确定(即,服务器所生成的服务)。在另一个示例中,当基于卫星的位置确定对于客户端设备并不可用时,RDDF 112可以向CLDF 113提供位置请求数据以便获得位置确定(即,客户端所生成的服务)。位置请求数据用于计算客户端设备110的位置。每个位置请求数据包括用于在该位置处提供无线通信连接的无线站点的标识符以及在该位置处接收的无线信号的特性。
CLDF 113能够计算客户端设备110的位置的功能。可能支持一种或多种定位计算模式。在一个示例中,当位置请求数据包括用于在该位置处提供无线通信连接的无线站点的标识符以及在该位置处接收的无线信号的特性时,蜂窝网络定位模式得到支持。在另一个示例中,当位置请求数据包括在该位置处提供无线通信连接的接入点的标识符以及在该位置处接收的无线信号的特性,WiFi网络定位模式得到支持。CLDF 113通过基于在该位置处从无线站点接收的无线信号的特性(例如,在该位置处接收的信号的强度)对其位置进行三角计算而使用客户端设备能够与之进行无线通信的无线站点来确定客户端设备110的位置。
数据引擎服务器120被配置为对从一个或多个客户端设备所接收的位置数据进行处理并且维护位置数据库150。数据引擎服务器120可以包括多个适当组件(未示出),诸如数据获取器、数据处理器、数据管理器、位置估计器等,其中每一个用来提供具体的功能。基于多个适当组件的数据引擎服务器120在其与客户端设备110进行交互时执行参考数据获取功能(RDRF)121、站点定位计算功能(SPCF)123、参考数据管理功能(RDMF)125和辅助数据传递功能(ADDF)127。
RDRF 121能够执行从位置数据库150获取位置数据的功能。根据本公开的实施例,当客户端设备110通过网络通信连接将载有位置数据的消息从不同位置发送至数据引擎服务器120,RDRF 121接收载有位置数据的消息并且基于时间段将位置数据形成为与无线站点相关联的群组。如果无线站点能够被识别为无线站点信息表160中的条目,则RDRF 121从位置数据库150提取历史位置数据。如果无线站点信息表160中并没有条目识别出所检测的无线站点,则能够在无线站点信息表160中生成新的条目。被用作位置数据库150的索引的无线站点信息表160包括用于蜂窝网络的第一无线站点信息表和用于WiFi网络的第二无线站点信息表。
RDRF 121能够执行处理位置数据的功能。根据本公开的实施例,RDRF 121分析位置数据,从位置数据中排除一个或多个异常值,并且将位置数据与从位置数据库150所输出的历史位置数据相结合。
SPCF 123能够执行计算无线站点的估计位置的功能。根据本公开的实施例,SPCF123使用位置数据的群组中的特定集合中的数据点来确定无线站点的估计位置。具体地,位置估计可以包括向客户端设备的每个位置(即,客户端设备的每个基于卫星的位置)分配权重并且将加权位置平均化为无线站点的地理位置。向每个位置分配权重可以包括向特定集合中的位置的经度和纬度中的每一个分配权重。位置的权重能够通过距离来确定。在使用距离对位置进行加权时,客户端设备和无线站点之间较大的距离可以提供该客户端设备的位置的较小权重。计算平均位置可以包括计算特定集合中的位置的加权的经度和加权的纬度的平均值,并且将处于所计算的平均经度和纬度的定位指定为平均位置。所估计的位置并不需要对应于无线站点的物理地理位置。基于特定集合中的客户端设备的位置,能够通过应用圆概率误差(CEP)理论来计算无线站点的估计位置的95%半径而计算与该无线站点的估计位置相关联的估计不确定度。95%反映了估计的置信度。基于特定集合中的位置的分布模式(例如,位置的数量、位置的密度、无线站点中的位置集中区域),不确定度值可以在无线站点间而有所不同。在一个示例中,不确定度值在客户端设备高度集中的情况下能够足够小。另外,SPCF 123能够根据位置数据群组中的数据点来计算无线站点的覆盖区域长度以及无线站点的传输信号范围。
RDMF 125能够执行对来自位置数据库150的位置数据进行管理的功能。RDMF 125在逻辑上管理位置数据精化和位置数据分布。在管理位置数据精化的示例中,RDMF 125将位置相关参数(例如,无线站点的覆盖区域长度)与参数阈值相比较并且基于该比较来确定是否精化位置数据。为了精化位置数据,RDMF 125基于集群计算来选择一个或多个异常值。异常值可以是可能包含要被去除的垃圾数据的集群。集群计算经由迭代精化方法使用集群中心对位置数据的群组进行建模。在管理位置数据分布的另一个示例中,RDMF 125将位置数据的群组依据子集的集群边界而分配到多个子集中。然后,RDMF 125基于子集中的群体分布来计算该子集的累积分布函数(CDF)值。当子集的CDF值处于一个范围中时,该子集被配置为可能具有跨子集相对均匀的群体,并且到子集的CDF值超出该范围时,RDMF 125使用适当算法来确定集群边界值以重新定义该子集以便针对位置数据的群组实现跨该子集相对均匀的群体。
ADDF 127能够执行确定辅助数据、传递辅助数据的功能。每个辅助数据包括无线站点的标识符、无线站点的位置的定位信息、多项式系数以及无线信号的特性的可工作范围。无线站点的位置的定位信息由SPCF 125所确定。ADDF 127使用多项式回归方法基于位置数据库150中的位置数据群组中的无线信号的特性而训练多项式系数。ADDF 127基于信号对距离的关系而确定无线信号的特性的可工作范围。辅助数据将被用作CLDF 113的输入以便计算客户端设备110的位置。例如,当在该位置处接收的无线信号的特性处于可工作范围内时,多项式系数能够被用来与客户端设备和无线站点之间的距离相关。CLDF 113通过基于与无线站点相关联的相关距离而对客户端设备位置进行三角计算而使用客户端设备能够与之进行无线通信的无线站点的位置来确定客户端设备110的位置。ADDF 127将所确定的辅助数据存储在辅助数据信息表170中。辅助数据信息表170可以包括用于蜂窝网络的第一辅助数据信息表和用于WiFi网络的第二辅助数据信息表。
ADDF 127能够通过基于客户端设备110的位置定义地理区域而从辅助数据信息表170获取辅助数据的集合。地理区域能够被描绘为圆形、矩形、正方形、六边形或者其它封闭区域。在一个示例中,当基于卫星的位置确定对于客户端设备110可用时,该客户端设备可以经由网络通信连接发送载有位置的定位信息的消息而使得ADDF 127能够获取辅助数据的集合。在另一个示例中,当基于卫星的位置确定对于客户端设备110不可用时,该客户端设备可以经由网络通信连接发送载有位置请求数据的消息而使得定位引擎服务器130能够确定客户端设备110的位置。随后,ADDF 127依据所确定位置的定位信息而获取辅助数据的集合。在ADDF 127已经获取了所定义地理区域中包含的辅助数据的集合之后,其将辅助数据的集合通过网络通信连接传递至客户端设备110。
定位引擎服务器130被配置为对从一个或多个客户端设备所接收的位置请求数据进行处理并且计算客户端设备的位置。定位引擎服务器130可以包括多个适当组件(未示出),诸如数据获取器、数据处理器、位置估计器等,它们中的每一个用来提供具体的功能。基于多个适当组件的定位引擎服务器130在其与客户端设备110进行交互时执行定位数据获取功能(PDRF)131和设备定位计算功能(DPCF)133。
PDRF 131能够执行从位置数据库150获取定位数据的功能。根据本公开的实施例,当客户端设备110在一个位置经由网络通信连接向定位引擎服务器130发送载有位置请求数据的消息时,PDRF 131接收载有位置请求数据的消息并且识别与客户端设备110进行通信的无线站点。如果无线站点能够被识别为无线站点信息表160中的条目,则PDRF 131从位置数据库150提取与该无线站点相关联的位置数据的群组。另外,PDRF 131在该无线站点的位置数据的群组中选择与客户端设备110处于其位置所具有相似的信号特性(例如,处于相同范围中的所接收信号的强度)的子集。所选择子集中的位置数据被表示为定位数据。
DPCF 133能够执行计算客户端设备110的位置的功能。可以支持一种或多种定位计算模式。在一个示例中,当位置请求数据包括用于在该位置处提供无线通信连接的蜂窝站点的标识符以及在该位置处接收的无线信号的特性时,蜂窝网络定位模式得到支持。在另一个示例中,当位置请求数据包括用于在该位置处提供无线通信连接的接入点的标识符以及在该位置处接收的无线信号的特性时,WiFi网络定位模式得到支持。根据本公开的实施例,DPCF 133基于定位数据确定客户端设备110的位置的定位信息。具体地,位置确定包括向定位数据中的每个位置分配权重并且对加权的位置求平均以确定客户端设备的位置。向每个位置分配权重可以包括向位置的经度和纬度中的每一个分配以权重。位置的权重能够通过在该位置处接收的无线信号的特性(即,在该位置处接收的信号的强度)比上定位数据中的无线信号的特性(即,信号的强度)来确定。计算平均位置可以包括计算位置的加权的经度的平均值和加权的纬度的平均值,并且将处于所计算的平均经度和所计算的平均纬度的位置指定为客户端设备的位置结果。在DPCF 133已经确定了客户端设备110的位置之后,其基于定位数据的统计特性来计算与所确定的位置相关联的估计的不确定度值。基于定位数据中位置的群体分布模式(例如,位置的数量、位置的密度和位置集中区域)该估计的不确定度值可以在位置间而有所不同。在一个示例中,估计的不确定值在位置高度集中的情况下可以足够小。DPCF 133可以使得定位引擎服务器130能够通过网络通信连接向客户端设备110发送载有位置结果的响应消息。
位置数据库150存储之前所获得的位置数据。根据本公开的实施例,每个位置数据关联于在位置处的无线指纹(例如,无线站点的标识符,以及从无线站点所接收的无线信号的特性)而存储该位置的定位信息(例如,经度和纬度)。位置数据库150能够在层级文件夹结构下进行组织,文件夹映射到文件系统中的目录。位置数据能够存储在任意适当格式的位置数据库中。在一个示例中,位置数据以有助于提取与无线站点相关联的位置数据群组以及有助于从该群组提取位置数据中的具有特定信号特性的子集的格式进行存储。在一个示例中,与无线站点相关联的每个位置数据群组被根据无线站点信息表160中所存储的集群边界而被集群为子集。
网络通信接口的功能在逻辑上被划分为数据管理通信接口和位置确定通信接口。根据本公开的实施例,网络通信接口可以是用于实施HTTP的软件。HTTP消息可以以HTTPPOST的形式进行传输。HTTP消息由首部参数和消息主体所构成。该消息主体也被称作有效载荷。在一个示例中,数据管理通信接口被用来使得客户端设备110能够与数据引擎服务器120建立通信。位置数据能够包含在HTTP消息的消息主体中。消息主体以简单的类似TXT的格式提供。在另一个示例中,定位确定通信接口被用来传输用于计算客户端设备110和定位引擎服务器130之间的位置的信息。该信息可以包含在HTTP消息的消息主体中。该消息主体以简单的类似扩展标记语言(XML)的格式提供。
图2是示出根据本公开实施例的数据引擎服务器处理具有历史位置数据的位置数据的示例流程图。如图2所示,示例性过程200将被图示为在实施示例性处理200的客户端设备110和数据引擎服务器120之间。该过程在201开始并且进行至210。
假设客户端设备的用户启动了卫星定位系统接收器,在客户端设备的用户经由用户界面点击了同意位置以在客户端设备110中实施隐私功能之后,客户端设备110中所安装的代理(未示出)可以从客户端设备110上所运行的客户端应用(未示出)接收针对基于卫星的位置确定的请求。该代理从卫星定位系统接收器接收位置的定位信息,其包括经度坐标和纬度坐标点配对、海拔、定向、水平定位误差等。随后,该代理将位置的定位信息转发至客户端设备100中所安装的位置提供器115。
在210,位置提供器115实施RDDF 112以生成位置数据并且将位置数据提供至数据引擎服务器120。RDDF 112从蜂窝收发器和/或无线收发器接收该位置处的无线通信的指纹,诸如与客户端设备进行无线通信的无线站点的标识符以及该位置的无线信号的特性。在一个示例中,RDDF 112从蜂窝收发器接收移动国家代码(MCC)、移动网络代码(MNC)、局域代码(LAC)和小区标识符(CID)作为在该位置处接收的蜂窝站点的标识符。在另一示例中,RDDF 112从无线收发器接收媒体访问控制(MAC)地址作为在该位置处接收的访问点的标识符。在又一示例中,RDDF 112接收信号强度作为在该位置处接收的无线信号的特性。RDDF112根据数据管理通信接口而准备HTTP消息。该HTTP消息载有用于形成位置数据的信息,诸如定位信息、无线站点的标识符以及在该位置处从无线站点接收的无线信号的特性。然后,客户端设备110使用网络所提供的域来建立到数据引擎服务器120的通信连接并且发送HTTP消息以开始向数据引擎服务器120提供位置数据的过程。如果客户端设备110还没有连接至分组数据网络服务,则其将自行连接。在一个示例中,当用户携带客户端设备在路途上移动时(即,处于不同位置),客户端设备110具有不同的无线指纹,诸如与不同的无线站点进行通信,具有不同的信号强度值,等等。客户端设备110能够向数据引擎服务器120提供与路途上的不同位置的无线指纹相关联的定位信息。
在220,在HTTP消息已经到达之后,数据引擎服务器120实施RDRF 121以识别位置数据。RDRF 121能够解析HTTP消息以获取定位信息和相关联的无线指纹,诸如无线站点的标识符以及信号强度值,并且基于时间段而将位置数据形成为与无线站点相关联的群组。RDRF 121利用无线站点信息表160中的现有标识符对接收到的标识符进行检查以识别无线站点。在操作期间,当数据引擎服务器120接收到HTTP请求消息时,其可以向客户端设备110发送包含状态代码的HTTP响应消息以通知它用于处理位置数据的过程开始。
在230,在识别出无线站点之后,数据引擎服务器120实施RDRF 121以处理位置数据。RDRF 121从无线站点信息表160提取所识别的无线站点的基本信息,基于该基本信息(例如,无线站点的覆盖区域长度和无线站点的传输信号范围)滤除与所识别的无线站点相关联的不可靠位置数据,从位置数据库150提取与所识别的无线站点相关联的历史位置数据,并且将经过滤的位置数据与历史位置数据相结合。RDRF 121将所结合的位置数据转发至SPCF 123以通知它用于计算位置确定的过程开始。
在240,数据引擎服务器120实施SPCF 123以计算无线站点的估计位置。SPCF 123基于所结合的位置数据计算无线站点的估计位置,并且基于所结合的位置数据的统计特性确定其它位置相关参数,诸如无线站点的覆盖区域长度、无线站点的传输信号范围等。注意到,RDRF 121和SPCF 123可以通过内部通信来交换位置确定的若干连续过程。SPCF 123将所结合的位置数据转发至RDMF 125以通知它用于管理位置数据的过程开始。
在250,数据引擎服务器120实施RDMF 125以对所结合的位置数据进行管理。RDMF125能够应用一种或多种集群计算以从所结合位置数据的群组中智能去除垃圾数据。例如,集群计算经由迭代精化方法使用集群中心对所结合位置数据的群组进行建模并且选择一个或多个可以包含要被去除的垃圾数据的集群。另外,RDMF 125能够将所结合位置数据的群组分配至多个子集并且能够动态地调整所结合位置数据的群组中的子集的集群边界,而使得群组的子集具有相对相等的群体。注意到,SPCF 123和RDMF 125可以通过内部通信来交换位置数据管理的若干连续过程。
在实施了步骤250之后,RDMF 125就将所管理的位置数据转发至SPCF 123以通知它用于计算位置确定的过程开始。在260,SPCF 123基于所管理的位置数据计算无线站点的估计位置并且基于所管理的位置数据的统计特性而确定其它位置相关参数。注意到,RDRF121和SPCF 123可以通过内部通信而交换位置确定的若干连续过程。SPCF 123将所管理的位置数据转发至RDMF 125以通知它用于管理位置数据的过程开始。在270,RDMF 125应用一种或多种集群计算以从所管理位置数据的群组中智能去除垃圾数据。另外,RDMF 125将所管理位置数据的群组分配成多个子集并且能够对所管理位置数据的群组中的子集的集群边界进行动态调节而使得该群组的子集具有相对相等的群体。注意到,SPCF 123和RDMF125可以通过内部通信交换位置数据管理的若干连续过程。该过程进行至299并结束。
在实施了步骤260至270之后,RDMF 125就将更新的结果转发至RDRF 121以通知它能够对无线站点信息表160中的无线站点的基本信息进行更新。另外,RDMF 125将更新的位置数据转发至位置数据库150以通知它能够对位置数据进行更新。
本领域技术人员将会认识到,图2的流程图可以被视为示出了根据本公开实施例的数据引擎服务器120在没有从位置数据库150提取历史位置数据时处理位置数据的示例流程图。在210,位置提供器115实施RDDF 112以生成位置数据并且将位置数据提供至数据引擎服务器120。RDDF 112根据数据管理通信接口而准备载有位置数据的HTTP消息。在220,在已经接收到HTTP消息之后,数据引擎服务器120实施RDRF 121以识别位置数据。由于位置数据无法在位置数据库150中被识别,所以该处理进行至240。在240,数据引擎服务器120实施SPCF 123以计算无线站点的估计位置。在250,数据引擎服务器120实施RDMF 125以管理位置数据精化和位置数据分布。在260,数据引擎服务器260实施SPCF 123以基于所管理的位置数据计算无线站点的估计位置。在270,数据引擎服务器120实施RDMF 125以管理位置数据精化和位置数据分布。在实施了步骤260至270之后,RDMF 125就将更新的结果转发至RDRF 121以通知它无线站点的基本信息能够被生成作为无线站点信息表160中的新条目。另外,RDMF 125将更新的位置数据转发至位置数据库150以通知它该位置数据能够被存储为新的位置数据。
图3是示出根据本公开实施例的定位引擎服务器确定客户端设备的位置的示例流程图。如图3所示,示例性处理300将被图示为在实施示例性处理200的客户端设备110和定位引擎服务器130之间。该处理在301开始并且进行至310。
假设客户端设备的用户并没有启动卫星定位系统接收器但是需要获知其位置,在客户端设备的用户经由用户界面点击了同意位置以在客户端设备110中实施隐私功能之后,则安装在客户端设备110中的位置提供器115可以从客户端设备110上所运行的客户端应用(未示出)接收针对位置确定的请求。
在310,位置提供器115实施RDDF 112以生成位置请求数据并且将位置请求数据提供至定位引擎服务器130。RDDF 112从蜂窝收发器和/或无线收发器接收该位置处的无线通信的指纹。RDDF 112根据定位确定通信接口而准备HTTP消息。该HTTP消息载有用于形成位置请求数据的信息,诸如无线站点的标识符以及在该位置处从无线站点所接收的无线信号的特性。该HTTP消息可以包括HTTP GET或HTTP POST。例如,该位置确定请求消息的有效负载在HTTP POST请求被使用时包括HTTP参数。该位置确定请求消息的有效负载可以包括类格式结构,其包含XML、JavaScript Object Notation(JSON)或者任意其它适当的用户定义格式。XML的格式结构包括文本、整数数据或浮点数数据。根标签可以包含用于区分不同类型的位置确定请求消息的两个子标签:C和W,它们分别表示基于蜂窝的位置请求数据和基于WiFi的位置请求数据。针对基于蜂窝的位置请求数据的示例POST消息如下:
POST/XXXXXXX/TopStar HTTP/1.1
<C><M>data elements in integer</M><N>data elements in integer</N><L>data elements in integer</L><C>data elements in integer</C><R>data elementsin integer</R></C>
POST/XXXXXXX/TopStar HTTP/1.1
针对基于WiFi的位置请求数据的示例POST消息如下:
POST/XXXXXXX/TopStar HTTP/1.1
<W><M>data elements in integer</M><i><A>data elements in text</A><Rx>data elements in integer</Rx></i></W>
然后,客户端设备110使用网络所提供的域来建立到定位引擎服务器130的通信连接并且发送位置确定请求消息以开始用于向定位引擎服务器120提供位置请求数据的过程。如果客户端设备110还没有连接至分组数据网络服务,则其将自行连接。应当注意的是,如果之前所计算的满足所请求定位质量(QoP)的位置在位置提供器115处是可用的,则位置提供器115将利用载有位置的定位信息的消息对客户端应用做出响应并停止该通信连接。
在320,定位引擎服务器130在已经接收到HTTP POST消息之后实施PDRF 131以从位置数据库150获取定位数据。PDRF 131能够解析载有位置请求数据的HTTP POST消息以获取相关联的无线指纹,诸如无线站点的标识符以及信号强度的值,并且利用无线站点信息表160中的现有标识符检查接收的标识符以识别该无线站点。如果无线站点能够被识别为无线站点信息表160中的条目,则PDRF 131从位置数据库150提取与无线站点相关联的位置数据的群组。PDRF 131针对该无线站点选择位置数据的群组中的与客户端设备110处于其位置所具有相似的信号特性(例如,相同范围内的所接收信号强度值)的子集。所选择子集中的位置数据被表示为定位数据。PDRF 131将该定位数据转发至DPCF 133以通知它用于计算位置确定的过程开始。
在330,定位引擎服务器130实施DPCF 133以计算客户端设备110的位置。DPCF 133基于定位数据计算用于客户端设备110的位置的定位信息并且基于定位数据的统计特性确定与计算的位置相关联的不确定度值。注意到,PDRF 131和DPCF 133可以通过内部通信交换位置确定的若干连续过程。该过程进行至399并结束。
在实施了步骤330之后,DPCF133根据位置确定通信接口准备HTTP消息。该HTTP消息载有用于形成位置响应数据的信息,诸如所确定的位置和相关联的不确定度位置误差。该HTTP消息可以包括HTTP GET或HTTP POST。例如,在使用HTTP POST响应时,该位置确定响应消息的有效载荷包括HTTP参数。位置确定响应消息的有效载荷可以包括格式结构,其包含XML、JSON或者任意其它适当定制格式。XML的格式结构包括文本、整数数据或浮点数据。根标签可以包含用于区分不同类型的位置响应消息的两个子标签:C和W,它们分别表示基于蜂窝的位置响应数据和基于WiFi的位置响应数据。基于蜂窝的位置响应数据的示例POST消息如下:
HTTP/1.1 200 OK
Content-Type:Application/Octet-Stream
Content-Length:Length of body
<C><r>data elements in text</r><d><o>data elements in float</o><t>data elements in float</t><u>data elements in integer</u></d></C>
基于WiFi的位置响应数据的示例POST消息如下:
HTTP/1.1 200 OK
Content-Type:Application/Octet-Stream
Content-Length:Length of body
<W><r>data elements in text</r><d><o>data elements in float</o><t>data elements in float</t><u>data elements in integer</u></d></W>
然后,位置引擎服务器130使用网络所提供的域以建立到客户端设备110的通信连接并且向客户端设备110发送包含状态代码的HTTP消息以通知它将没有另外的用于位置确定的过程要开始。在一个示例中,当位置确定响应消息被成功处理时,响应状态代码为200并且响应原因短语为“OK”。在另一个实施例中,当位置确定响应消息并未被成功处理时,则响应消息包含错误信息。
本领域技术人员将会认识到的是,图3的流程图可以被视为示出根据本公开实施例的定位引擎服务器130在没有从位置数据库150提取历史位置数据时确定客户端设备110的位置的示例流程图。在310,位置提供器115实施RDDF 112以生成位置请求数据并且将位置请求数据提供至定位引擎服务器130。RDDF 112根据位置确定通信接口而准备载有位置请求数据的HTTP消息。在320,定位引擎服务器130已经在接收到HTTP消息之后实施RDRF131以获取定位数据。由于位置请求数据无法在位置数据库150中被识别,或者在定位引擎服务器130上出现了错误,所以定位引擎服务器130使用网络所提供的域建立到客户端设备110的通信连接并且向客户端设备110发送包含状态代码的HTTP消息以通知其将没有另外的用于位置确定的过程要开始。
图4是示出根据本公开实施例的客户端设备确定客户端设备的位置的示例流程图。如图4所示,示例性过程400将在实施示例性过程400的客户端设备110和数据引擎服务器130之间进行图示。该过程在401开始并且进行至410。
在410,数据引擎服务器120实施ADDF 127以确定辅助数据并且将辅助数据存储在辅助数据信息表170中。每个辅助数据包括与无线站点的位置的定位信息相关联的无线站点的标识符、多项式系数和无线信号的特性的可工作范围。
在420,位置提供器115实施RDDF 112以请求辅助数据。RDDF 112根据位置确定通信接口准备HTTP消息。该HTTTP消息载有数据。在一个示例中,在基于卫星的位置确定对于客户端设备110可用时,HTTP消息载有位置的定位信息。在另一示例中,在基于卫星的位置确定对于客户端设备110不可用时,HTTP消息载有位置请求数据,诸如无线站点的标示符和在该位置处从无线站点所接收的无线信号的特性。当使用HTTP POST请求时,该辅助数据请求消息的有效负载包括HTTP参数以及包含XML、JSON或者任意其它适当的用户定义格式的类格式结构。XML的格式结构可以包括文本、整数数据或浮点数据。根标签可以包含用于区分不同类型的辅助数据请求消息的两个子标签:C和W,它们分别表示基于蜂窝的辅助数据和基于WiFi的辅助数据。
在430,在已经接收到HTTP POST消息之后,定位引擎服务器130实施PDRF 131以识别数据的类型。PDRF 131能够解析载有数据的HTTP POST消息。如果该数据是位置的定位信息的类型,则PDRF 131将该位置的定位信息转发至ADDF 127以通知其用于获取辅助数据的过程开始。如果该数据是位置请求数据的类型,则PDRF 131从位置数据库150获取定位数据并且将定位数据转发至DPCF 133以便计算客户端设备的位置。随后,DPCF 133将所确定的客户端设备的位置转发至ADDF 127以通知其用于获取辅助数据的过程开始。
在440,数据引擎服务器120实施ADDF 127以获取辅助数据的集合。包含在所定义的地理区域中的辅助数据的集合可以被获取。由圆形、矩形、正方形、六边形或者其它封闭区所描绘的地理区域能够基于客户端设备110的位置的定位信息进行定义。在ADDF 127已经获取的辅助数据的集合之后,其将该辅助数据的集合转发至PDRF 131以通知它用于向客户端设备110提供辅助数据的集合的过程开始。
在450,PDRF 131根据定位确定通信接口准备HTTP消息。该HTTP消息载有辅助数据的集合。在使用HTTP POST响应时,该辅助数据响应消息的有效载荷包括HTTP参数。该辅助数据响应消息的有效载荷可以包括包含XML、JSON或任意其它适当定制格式的格式结构。XML的格式结构包括文本、整数数据或浮点数据。根标签可以包含用于区分不同类型的位置响应消息的两个子标签:C和W,它们分别表示基于蜂窝的辅助数据和基于WiFi的辅助数据。
在实施了步骤450之后,客户端设备110接收到辅助数据的集合并且将其存储在存储器(未示出)中。在一个示例中,该存储器可以是非易失性存储器而使得其所包含的数据能够在本领域需要确定位置服务的客户端设备110时能够被立刻使用。假设客户端设备的用户并没有启动卫星定位系统接收器但是需要获知其位置,在客户端设备的用户经由用户界面点击了同意位置以在客户端设备110中实施隐私功能的位置,则安装在客户端设备110中的位置提供器115可以从客户端设备110上所运行的客户端应用(未示出)接收位置确定的请求。
在460,位置提供器115实施RDDF 112以生成位置请求数据并且提供位置请求数据。RDDF 112从蜂窝收发器和/或无线收发器接收该位置处的无线通信的指纹。RDDF 112将该位置处的无线通信的指纹转发至CLDF 113以通知其用于计算位置确定的过程开始。
在470,位置提供器115实施CLDF 113以计算客户端设备110的位置。CLDF 113利用存储器中的现有标识符检查所接收的标识符以识别无线站点。在一个示例中,当无线站点能够被识别为存储器中的条目时,CLDF 113能够提取与该无线站点相关联的辅助数据。当在该位置处接收的无线信号的特性处于可工作范围之内时,CLDF 113使用多项式系数来使客户端设备与一个或多个无线站点之间的一个或多个距离相关。通过基于相关距离对客户端设备的定位进行三角计算,CLDF 113使用客户端设备能够与之无线通信的无线站点的位置而确定客户端设备110的位置。在另一个示例中,当无线站点无法被识别为存储器中的条目时,位置提供器115实施参考图3的位置确定。
参考图1-4所描述的特征能够以由处理系统所执行的一个或多个计算机程序来实施,该处理系统包括被耦合以从数据存储系统接收数据和指令并且向其传送数据和指令的至少一个可编程处理器,至少一个输入设备和至少一个输出设备。计算机程序是能够直接或间接在计算机中被用来执行某些活动或者带来某些结果的指令集合。计算机程序能够以包括编译或解译语言之内的任意形式的编程语言(例如,Java、Objective-C)进行编写,并且能够以任意形式进行部署,包括作为独立程序或者作为模块、组件、基于浏览器的web应用或者是与在计算环境中使用的其它单元。
特征能够在计算机系统中执行,该计算机系统可以包括后端组件,或者其可以包括中间件组件,或者其可以包括前端组件。系统的组件可以通过任意形式或介质的数据通信网络进行连接。在一些实现方式中,通信网络可以包括LAN、WAN,以及形成互联网的计算机和网络。
计算机系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过网络进行交互。客户端和服务器的关系源自于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序。
虽然已经结合作为示例而给出的其具体实施例对本公开的各方面进行了描述,但是可以对该示例进行替换、修改和变化。因此,这里所给出的实施例意在是说明性而非限制性的。可以进行改变而并不背离以下所给出的权利要求的范围。