使用移动国家代码的地点过滤的方法及系统转让专利

申请号 : CN201180014327.9

文献号 : CN103039115B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗纳德·K·黄帕特里克·皮埃蒙特摩根·格瑞恩格尔克里斯托弗·莫尔

申请人 : 苹果公司

摘要 :

本申请描述了用于使用移动国家代码(MCC)的地点过滤的方法、程序产品和系统。移动设备可利用移动设备所连接到的无线通信网络的接入点的位置来确定其地理位置。移动设备可通过蜂窝网络无线接收无线通信网络的一个或多个接入点的标识符和当前MCC。移动设备可识别作为与当前MCC对应的地理区域的边界框的多边形。移动设备可利用所接收的标识符从地点数据库中选择一组接入点地点,其中所述接入点地点在所识别出的多边形内。移动设备基于所选择的一组接入点地点的平均地点来确定移动设备的当前地点。

权利要求 :

1.一种用于使用移动国家代码(MCC)的地点过滤的方法,包括:接收无线通信网络的一个或多个接入点的标识符,以及当前移动国家代码(MCC);

识别多边形,所述多边形是与所述当前MCC对应的地理区域的边界框;

利用所接收的标识符从地点数据库中选择一组接入点地点,其中,这些接入点地点在所识别出的多边形内,其中选择一组接入点地点包括:从所述接入点地点识别离群值,包括识别其标识符被移动设备接收的接入点,其中,根据存储在所述移动设备上的地点记录,所述接入点的地点位于对应于当前MCC的多边形的外部;和从所述一组接入点地点滤除所述离群值;以及基于所选择的这组接入点地点的平均地点,来确定所述移动设备的当前地点。

2.如权利要求1所述的方法,还包括:

在地理数据库中存储多边形,这些多边形是由移动国家代码识别出的地理区域的边界框;以及将所述地点数据库存储在所述移动设备的存储设备上。

3.如权利要求1所述的方法,还包括:

将所述当前地点显示在所述移动设备的地图显示上。

4.如权利要求1所述的方法,其中,所述接入点的标识符包括所述接入点的媒体访问控制(MAC)地址。

5.如权利要求1所述的方法,其中,所述多边形是由所述地理区域的多个点的纬度和经度坐标定义的。

6.如权利要求1所述的方法,其中,所述地理区域还与时区对应。

7.如权利要求1所述的方法,其中,确定所述当前地点的步骤包括:利用所述一组接入点地点来计算平均地理地点;

计算所述平均地理地点与该组中的接入点地点之间的距离;

基于所述平均地理地点与至少一个接入点地点之间的距离,来从所述组排除至少一个接入点地点;

重复计算平均地理地点、计算距离以及排除至少一个接入点地点的操作,直到满足退出条件;以及利用圆形来指定所述移动设备的当前地点,所述圆形以所述平均地理地点为中心并且半径基于至少一个计算出的距离。

8.如权利要求7所述的方法,其中,所述退出条件在重复次数达到阈值次数时被满足。

9.如权利要求7所述的方法,其中,所述退出条件在所述圆形的半径达到阈值半径以下时被满足。

10.如权利要求7所述的方法,其中,该组中的地点中的每个地点包括纬度和经度。

11.一种用于使用移动国家代码(MCC)的地点过滤的系统,包括:移动设备,被配置为执行操作,这些操作包括:接收无线通信网络的一个或多个接入点的标识符,以及当前移动国家代码(MCC);

识别多边形,所述多边形是与所述当前MCC对应的地理区域的边界框;

利用所接收的标识符从地点数据库中选择一组接入点地点,其中,这些接入点地点在所识别出的多边形内,其中选择一组接入点地点包括:从所述接入点地点识别离群值,包括识别其标识符被移动设备接收的接入点,其中,根据存储在所述移动设备上的地点记录,所述接入点的地点位于对应于当前MCC的多边形的外部;和从所述一组接入点地点滤除所述离群值;以及基于所选择的这组接入点地点的平均地点,来确定所述移动设备的当前地点。

12.如权利要求11所述的系统,所述操作还包括:在地理数据库中存储多边形,这些多边形是由移动国家代码识别出的地理区域的边界框;以及将所述地点数据库存储在所述移动设备的存储设备上。

13.如权利要求11所述的系统,所述操作还包括:将所述当前地点显示在所述移动设备的地图显示上。

14.如权利要求11所述的系统,其中,所述接入点的标识符包括所述接入点的媒体访问控制(MAC)地址。

15.如权利要求11所述的系统,其中,所述多边形是由所述地理区域的多个点的纬度和经度坐标定义的。

16.如权利要求11所述的系统,其中,所述地理区域还与时区对应。

17.如权利要求11所述的系统,其中,确定所述当前地点的操作包括:利用所述一组接入点地点来计算平均地理地点;

计算所述平均地理地点与该组中的接入点地点之间的距离;

基于所述平均地理地点与至少一个接入点地点之间的距离,来从所述组排除至少一个接入点地点;

重复计算平均地理地点、计算距离以及排除至少一个接入点地点的操作,直到满足退出条件;以及利用圆形来指定所述移动设备的当前地点,所述圆形以所述平均地理地点为中心并且半径基于至少一个计算出的距离。

18.如权利要求17所述的系统,其中,所述退出条件在重复次数达到阈值次数时被满足。

19.如权利要求17所述的系统,其中,所述退出条件在所述圆形的半径达到阈值半径以下时被满足。

20.如权利要求17所述的系统,其中,该组中的地点中的每个地点包括纬度和经度。

21.一种用于使用移动国家代码(MCC)的地点过滤的系统,包括:用于接收无线通信网络的一个或多个接入点的标识符以及当前移动国家代码(MCC)的装置;

用于识别多边形的装置,所述多边形是与所述当前MCC对应的地理区域的边界框;

用于利用所接收的标识符从地点数据库中选择一组接入点地点的装置,其中,这些接入点地点在所识别出的多边形内,其中选择一组接入点地点包括:从所述接入点地点识别离群值,包括识别其标识符被移动设备接收的接入点,其中,根据存储在所述移动设备上的地点记录,所述接入点的地点位于对应于当前MCC的多边形的外部;和从所述一组接入点地点滤除所述离群值;以及用于基于所选择的这组接入点地点的平均地点来确定所述移动设备的当前地点的装置。

22.如权利要求21所述的系统,还包括:用于在地理数据库中存储多边形的装置,这些多边形是由移动国家代码识别出的地理区域的边界框;以及用于将所述地点数据库存储在所述移动设备的存储设备上的装置。

23.如权利要求21所述的系统,还包括:用于将所述当前地点显示在所述移动设备的地图显示上的装置。

24.如权利要求21所述的系统,其中,所述接入点的标识符包括所述接入点的媒体访问控制(MAC)地址。

25.如权利要求21所述的系统,其中,所述多边形是由所述地理区域的多个点的纬度和经度坐标定义的。

26.如权利要求21所述的系统,其中,所述地理区域还与时区对应。

27.如权利要求21所述的系统,其中,用于确定所述当前地点的装置包括:用于利用所述一组接入点地点来计算平均地理地点的装置;

用于计算所述平均地理地点与该组中的接入点地点之间的距离的装置;

用于基于所述平均地理地点与至少一个接入点地点之间的距离,来从所述组排除所述至少一个接入点地点的装置;

用于重复用于计算平均地理地点的装置、用于计算距离的装置以及用于排除至少一个接入点地点的装置的操作直到满足退出条件的装置;以及用于利用圆形来指定所述移动设备的当前地点的装置,所述圆形以所述平均地理地点为中心并且半径基于至少一个计算出的距离。

28.如权利要求27所述的系统,其中,所述退出条件在重复次数达到阈值次数时被满足。

29.如权利要求27所述的系统,其中,所述退出条件在所述圆形的半径达到阈值半径以下时被满足。

30.如权利要求27所述的系统,其中,该组中的地点中的每个地点包括纬度和经度。

说明书 :

使用移动国家代码的地点过滤的方法及系统

技术领域

[0001] 本发明大体上涉及移动设备的地理地点。

背景技术

[0002] 可在无线通信网络中采用各种技术来使移动设备彼此通信和与有线网络上的设备通信。取决于所使用的技术,移动设备的通信距离可从几米(例如在个人局域网中)到几千米(例如在蜂窝网络中)。在无线通信技术当中,无线局域网(WLAN)可包括使用无线电波来进行通信的局域网(例如覆盖相对较小物理区域(比如家庭、办公室、或诸如学校之类的小建筑群)的计算机网络)。WLAN技术的一些示例包括WiFi,其可包括基于任意的电气和电子工程师协会(IEEE)802.xx标准的任意WLAN产品。移动设备可通过无线网络的接入点与WLAN中的其他设备通信或者与WLAN外的设备通信。
[0003] 一般而言,蜂窝通信网络可允许移动设备在比WLAN的距离更长的距离上彼此或与其他设备通信。一些示例蜂窝技术包括全球移动通信系统(GSM)网络或者通用移动通信系统(UMTS)网络。蜂窝网络中的在给定地点处的移动设备可具有可指定该给定地点的国家的当前移动国家代码(MCC)、可标识移动网络运营商的当前移动网络代码(MNC)、可标识地点区域(可以由移动网络运营商来定义)的当前地点区域代码(LAC)、该地点的当前时区。MCC、MNC、LAC和当前时区信息可由移动网络运营商通过蜂窝塔来提供给移动设备。

发明内容

[0004] 这里描述了用于使用移动国家代码(MCC)的地点过滤的方法、程序产品和系统。移动设备可利用移动设备所连接到的无线通信网络的接入点 的位置来确定其地理位置。移动设备可通过蜂窝网络无线接收无线通信网络的一个或多个接入点的标识符和当前MCC。移动设备可识别多边形,该多边形是与当前MCC对应的地理区域的边界框。移动设备可利用所接收的标识符从地点数据库中选择一组接入点地点,这些接入点地点在所识别出的多边形内。移动设备基于所选择的一组接入点地点的平均地点来确定移动设备的当前地点。
[0005] 用于使用移动国家代码的地点过滤的技术可被实现为实现如下示例性优点。移动设备即使是不能够接收全球定位系统(GPS)信号的也能够确定其地点。例如,未配备或耦接到GPS接收器的移动设备可确定移动设备的当前地点。移动设备可在连接到无线网络(例如WiFi、WiMax或其他无线网络)时确定其地点。移动设备可基于其可连接到的无线接入点的地点来确定其地点。有GPS功能的设备也可在例如GPS信号弱(例如在建筑物内)时利用无线接入点的地点。
[0006] 使用MCC的地点过滤可提供滤除新近移动了的接入点的有效方式。如果移动设备具有其所连接到的接入点的地点记录,并且地点记录指示出接入点位于不同于当前国家的国家中,则移动设备可将该接入点排除出地点计算。当例如移动设备所连接到的接入点位于加拿大而移动设备具有指示出该接入点位于法国的记录,则移动设备可避免错误的地点计算。当采用使用MCC的地点过滤技术时,地点计算可变得更准确。
[0007] 在附图以及以下描述中给出使用MCC的地点过滤的一种或多种实现方式的细节。确定无线接入点的地点的其他特征、方面、和优点将从描述、附图和权利要求书中变得清楚。

附图说明

[0008] 图1是使用移动国家代码的地点过滤的概览。
[0009] 图2A是确定无线接入点的地点的技术的概览。
[0010] 图2B例示出在三维空间中确定无线接入点的地点。
[0011] 图3A-3C例示出利用移动设备来确定与WLAN中接入点相关联的地点的示例性阶段。
[0012] 图3D例示出在三维空间中利用移动设备确定与WLAN中无线接入点相关联的地点的示例性阶段。
[0013] 图4A和4B是例示出利用移动设备确定与WLAN中无线接入点相关联的地点的示例性处理的流程图。
[0014] 图4C是例示出实现确定无线接入点的地点的技术的示例性系统的框图。
[0015] 图5A例示出用于利用确定无线接入点的地点的技术来确定移动设备的地点的技术。
[0016] 图5B是例示出利用移动国家代码的地点过滤的示例性处理的流程图。
[0017] 图5C是例示出利用无线接入点的过滤后的地点来确定移动设备的地点的示例性处理的流程图。
[0018] 图6例示出用于利用无线接入点的地点来确定移动设备的地点的示例性用户界面。
[0019] 图7是移动设备的示例性架构的框图。
[0020] 各个附图中的类似标号指示类似元件。

具体实施方式

[0021] 使用移动国家代码的地点过滤概览
[0022] 图1是使用移动国家代码(MCC)的地点过滤的概览。为方便起见,仅北美洲和夏威夷群岛被示出在图1中。进一步地,仅加拿大、美国和墨西哥被给出作为使用MCC的地点过滤的示例。使用MCC的地点过滤的技术可应用于其他国家和洲。
[0023] 移动设备112可通过接入点125连接到无线通信网络。接入点125可包括硬件设备或计算机软件,它们可用作无线设备连接到有线网络的通信集线器。多个接入点125可分布在一个区域(例如办公大楼或机场)中。接入点125可与接入点125可服务的地点相关联。例如,接入点125a可位于美国加州的旧金山,并服务确定区域(例如,位于300Bush Street处的大楼)。
[0024] 移动设备112可使用接入点125(移动设备112连接到该接入点)的地点来确定移动设备112的当前地点。当移动设备112是无线连接到接入点125a时,移动设备112可从地点数据库来识别接入点115a的地点。地点数据库可存储接入点115a的标识符(例如媒体访问控制(MAC)地址)和与该标识符相关联的地点。例如,地点数据库中的记录可将接入点125a的标识符与指示出接入点125a位于美国加州旧金山的300Bush Street的、纬度和经度坐标37°47’27.56”N和122°24’08.69”W相关联。因为移动设备112无线连接到接入点115a所以知道115a的标识符的移动设备112至少在连接时可确定移动设备112位于美国加州的旧金山。
确定接入点接入点125的地点以及移动设备112的当前地点的更多细节将在以下进行描述。
[0025] 接入点125可以是移动的。例如,接入点125a可在实体上从美国加州的旧金山移动到加拿大阿尔伯达的埃得蒙顿(例如由于公司迁址)。移动后的接入点125a被表示为接入点125b。然而,除非地点数据库被更新并且直到那之前,地点数据库仍与把接入点125b的实际硬件组件标识为美国加州的旧金山的标识符相关联。因此,当前连接到位于加拿大阿尔伯达的埃得蒙顿的接入点125b的移动设备114可能错误地确定移动设备114b位于美国加州的旧金山。
[0026] 一种避免错误地点确定的方式是使用移动设备114的当前MCC来过滤地点数据库。MCC是国际电信联盟指派给国家的代码。MCC对于每个国家而言是特有的并且可用来标识国家。各国可具有指派给它的一个或多个MCC。表1例示出一些示例MCC和对应的国家。
[0027]  MCC   国家
  302   加拿大
  310-316   美国
  334   墨西哥
[0028] 表1、示例性MCC
[0029] 移动设备114可具有可标识移动设备114的订户的国家的订户MCC(subscriber MCC)。订户MCC可指示移动设备114的归属国家。例如, 订户移动设备114可以是“334”,其指示出移动设备113的归属国家是墨西哥。另外,移动设备114可检测指示出移动设备114目前位于其中的国家的当前MCC。例如,移动设备114的当前MCC可以是“302”,其指示出移动设备114当前位于加拿大。移动设备114的当前MCC可从移动设备114的负责无线通信和控制的专用处理器获得。在各种实现方式中,专用处理器可以已知为是基带处理器、GMS无线调制解调器、以及UMTS无线调制解调器。在此说明书中,除非另外指定,术语MCC将用于表示移动设备的当前MCC,而不是移动设备的归属MCC。
[0030] 移动设备114可使用当前MCC,通过判断位置数据库中的记录是否与当前MCC一致来过滤位置数据库。例如,移动设备114可确定出具有与美国加州旧金山对应的地点的接入点125b与指示出当前国家是加拿大的当前MCC“302”不匹配。因为旧金山不是位于加拿大,所以移动设备114可确定出地点数据库中针对接入点125b的记录是错误的,并从数据库中去除记录。
[0031] 为了判断接入点125b的地点是否与当前MCC一致,系统可生成作为各MCC的边界框(bounding box)的多边形并判断接入点125b的地点是否处于正确的多边形内。例如,边界框100可对应于MCC“302”(加拿大)。边界框102可对应于MCC“310”、“311”、“312”、“313”、“314”、“315”和“316”(美国)。边界框104可对应于MCC“334”(墨西哥)。为了清楚起见,用于其他北美洲国家的边界框未被示出在图1中。如在地点数据库中记录的接入点125b的地点可包括纬度和经度。例如,地点数据库中的记录可将接入点125b的标识符与指示出接入点125b位于美国加州旧金山的300Bush Street的、纬度和经度坐标37°47’27.56”N和122°24’
08.69”W相关联。该地点在加拿大的边界框100之外。因此,移动设备114可以从地点数据库中去除该记录,并使用另一接入点来估计移动设备114的当前地点。
[0032] 系统可使用各种算法来确定与MCC相关联的国家的边界框(例如边界框100)。国家(例如加拿大)可被表示为一个或多个简单多边形,这些多边形的顶点可以以纬度/经度坐标的方式来储存。国家的边界框可以是 通过例如Akl-Toussaint启发算法或Melkman算法确定的国家简单多边形的凸壳(convex hull)。在一些实现方式中,国家的边界框可通过国家边界内的极端点(例如最东部的、最西部的、最北部的、和最南部的点)来确定。边界框可以是大体上矩形的区域(例如在使用墨卡托投影绘制的地图上的边界框100、102和104)。边界框可利用两点的纬度/经度坐标来存储(例如其西北顶点和其东南顶点)。
[0033] 例如,加拿大的边界框100可具有通过纬度83°08’N而描绘的北部边界,该纬度83°08’N对应于努纳武特埃尔斯米尔岛哥伦比亚海角(加拿大边界内的极北点)的纬度。边界框
100可具有通过纬度41°41’N而描绘的南部边界,该纬度41°41’N对应于安大略湖中岛(加拿大的极南点)的纬度。边界框100可具有通过经度52°37’W(纽芬兰省斯比尔角)而描绘的东部边界和通过经度141°00’W(Yukon-Alaska边界)而描绘的西部边界。边界框100可被存储在两组坐标中(例如83°08’N/141°00’W和41°41’N/52°37’W)。
[0034] 一些国家(例如美国)可被表示为多个简单多边形(例如48个大陆州、阿拉斯加州和夏威夷)。可被表示为多个简单多边形的国家可具有多个边界框(例如用于阿拉斯加州的边界框102a、用于大陆48个州的边界框102b、用于夏威夷的边界框102c)。各个国家的边界框可以重叠,例如,如在边界框100和102a之间的重叠区域所示出的。
[0035] 边界框可与MCC相关联地存储在移动设备上。例如,移动设备114可存储或连接到地理数据库,MCC和相应边界框被存储在该数据库中。MCC“302”(加拿大)例如可与西北顶点和东南顶点相关联。
[0036] 当移动设备114(其当前MCC是“302”)连接到接入点125b并从地点数据库识别出接入点125b的地点时,移动设备114可将该地点与边界框100进行比较以判断该地点是否在边界框100内。各种算法(例如光线投射(ray casting)算法或绕数(winding number)算法)可被用来判断地点是否在边界框100内。例如,当边界框100是通过西北顶点和东南顶点来表示的时,接入点125b的地点的纬度和经度坐标可与顶点的纬度和经度坐标进行比较,以判断接入点125b的地点是否位于边界框100的大体 矩形区域内。
[0037] 当确定出接入点125b的地点位于与当前MCC“302”相关联的边界框100内时,移动设备114可继续利用接入点125b的地点来估计移动设备114的当前地点。如果确定出接入点125b的地点(例如37°47’27.56”N和122°24’08.69”W)在边界框100(83°08’N/141°00’W和
41°41’N/52°37’W)外,则移动设备114可使用通信范围内的另一接入点来估计移动设备104的当前地点。移动设备104也可更新地点数据库(例如通过将接入点125b的地点标记为“脏的(dirty)”来删除与接入点125b相关联的记录)。这样,移动设备114可避免显示错误的当前地点。
[0038] 确定无线接入点的地点
[0039] 图2A是确定无线接入点的地点的技术的概览。出于简便起见,将参考实现确定无线接入点的地点的技术的系统来描述技术。
[0040] 无线局域网(WLAN)可以是包括多个接入点155的无线电通信网络。接入点155可使用各种通信协议来与无线设备(例如移动设备158和160)通信。在一些实现方式中,接入点155可以是WiFiTM网络的接入点,其实现基于电气和电子工程师协会(IEEE)802.11的协议(例如IEEE 802.11a)。在一些实现方式中,接入点155可以是全球互通微波接入(WiMAX)网络的接入点,其实现基于电气和电子工程师协会(IEEE)802.16的协议(例如IEEE 802.16-
1554或IEEE 802.16e-1555)。接入点155可具有可从接入点155的地点到达少于十米到几百米(这取决于包括接入点155的配置和物理环境在内的因素)的任何地方的通信范围。多个移动设备158和160可在处于接入点155的通信范围内时连接到接入点。接着,接入点155可供单个移动设备158或160连接。移动设备158和160可选择移动设备158和160向其连接的特定接入点155。例如,选择可以基于移动设备158是否被授权连接到接入点155a或者接入点
155a是否可针对到移动设备158的连接提供最强信号。
[0041] 系统可确定与接入点155相关联的地点区域165。地点区域165可被计算以使得它们指示出连接到接入点155的移动设备158可能位于哪里。 系统可基于来自移动设备158(它们连接到接入点155)的已知地点来做出判断。移动设备158可以是知道地点的移动设备(例如有GPS功能的移动设备),这些设备内置有或耦接到可接收GPS(全球定位系统)信号的接收器并利用GPS信号来确定地点。知道地点的移动设备158在图2A中被表示为黑三角形。当知道地点的移动设备158连接到特定接入点(例如接入点155a)时,知道地点的移动设备
158可发送设备的地点到接入点155a。接入点155a可将该发送以及接入点155a的标识符中继到系统。系统可确定其中连接到接入点155a的任意移动设备158或160最可能定位的估计的地点区域165a。在本申请中,估计的地点区域165将称为存在区域,从而表明当连接到特定接入点155时移动设备158或160可能存在。
[0042] 为了计算存在区域165,系统可应用迭代处理(例如通过执行多步骤分析)。迭代处理可将与接入点(例如接入点155)相关联的存在区域(例如存在区域165)确定为圆形。该圆形可具有与基于无线连接到接入点155的知道地点的移动设备158的地点而算出的平均地理地点对应的中心。该圆形可具有与误差容限(error margin)对应的半径,该误差容限可通过例如移动设备158的地点与平均地理地点之间的距离来确定。关于迭代处理的进一步细节将在随后参考图2和3来描述。迭代处理可周期性地(例如每6个小时)执行从而捕捉在一天当中不同小时期间的不同无线接入使用模式以及捕捉接入点155的可能移动。
[0043] 系统可将存在区域165的信息发送给连接到接入点155的移动设备(包括没有GPS功能的移动设备,例如移动设备160)以使得接收移动设备可利用存在区域165来确定设备的估计地点。例如,如果移动设备160连接到接入点155b,则移动设备160的地点可被估计为与和接入点155b关联的存在区域165b一致。
[0044] 在给定区域(例如机场)中,可能存在大量接入点155。进一步地,因为移动设备160可以是移动的,所以更加符合逻辑的可能是:发送不是直接处于移动设备160的通信范围内、而是距离移动设备160足够接近的接入点的地点,从而使得移动设备160可使用这些地点来跟踪其移动。为了避免发送大量地点数据给移动设备160,系统可以过滤接入点155和存 在区域165以使得仅有限数量的接入点(例如接入点155a)的地点数据而非所存在的每一个单个接入点的地点数据被发送。过滤可以基于各种因素,包括地点165和接入点155的普及性、稳定性、寿命以及新鲜度(freshness)。
[0045] 为了过滤存在区域165和接入点155,系统可创建包含小区152的地理栅格150。小区152可以是具有大体矩形形状的多边形,该多边形与地理网格150上由地理区域的标识点(例如中心或角部)和大小(例如以经度数为单位测量的长度和以纬度数为单位测量的宽度)可标识的地理区域对应。每个小区152可用作可包含若干个地点的容器。例如,小区152可以是长度为0.0005度子午线(大约56米)且宽度为0.0005度纬度(以米计的宽度可随纬度变化而变化)的矩形。小区152可被配置成保存与接入点155对应的存在区域165的数目(例如3个)。在一些实现方式中,如果存在区域165的中心位于小区152的边界内则小区152可“保存”存在区域165。存在区域165可基于一个或多个可靠因素从位于小区152中的所有存在区域165中被选出。选择可基于诸如普及性、稳定性、寿命和新鲜度之类的各种标准。
[0046] 特定接入点(例如接入点155b)和与接入点相关联的存在区域(例如存在区域165b)不是必须位于同一小区152中。例如当接入点155b位于小区152a中的一栋大楼而连接到接入点155b的大多数移动设备158位于小区152b中的另一栋大楼时,这种情况可能发生。
在一些实现方式中,系统可忽略接入点155b的实际地点。
[0047] 当移动设备160连接到接入点(例如其相关联的存在区域165a位于小区152c中的接入点155a时)时,移动设备160可接收来自系统的地点更新。地点更新可包括位于存在区域165a所处的同一小区(例如小区152c)中的所有存在区域165。地点更新还可包括位于地理网格150上与小区152c相邻的其他小区(例如小区152a和小区152b)中的存在区域165。
[0048] 当移动设备160连接到接入点155a时,移动设备160可检测可用的其他接入点(例如接入点155b)。移动设备160可针对可用的接入点识别存 在区域(例如存在区域165a和165b)。移动设备160可利用各种算法计算移动设备160的当前地点。例如,当仅一个存在区域165a被识别到时,移动设备160可将存在区域165a指定为移动设备160的当前位置。当两个或更多个存在区域165被识别到时,移动设备160可利用迭代处理(例如多步骤分析)来计算其当前位置。迭代处理可计算存在区域的平均地点,计算存在区域和平均地点之间的距离,并排除距离平均地点最远的存在区域。移动设备160可重复迭代直到用于确定移动设备
160的地点的精度要求被满足为止。移动设备160可将平均地点指定为移动设备160的当前地点并将平均地点显示在地图显示设备上。
[0049] 在一些实现方式中,在移动设备160上从系统接收的地点更新可包括大量相邻小区从而使得存在区域165a周围足够大的区域(例如一个或两个平方千米)可被覆盖。基于覆盖较大区域的地点更新,移动设备160可避免在移动时不得不频繁请求更新。移动设备160可在例如空闲或者否则有可用通信带宽时有机会接收更新后的存在区域信息。
[0050] 图2B例示出在三维空间中确定无线接入点的地点。一些知道地点的移动设备158(例如有GPS功能的设备)可标识出三维空间中的地点。地点可通过纬度、经度和海拔高度来表示。海拔高度可被表示为例如从海平面起以米测量的高度。当移动设备的海拔高度是定位移动设备所必需的时,在三维空间中定位移动设备可能是需要的。例如,海拔高度可用来确定移动设备位于高耸建筑中的哪一层。三维空间中的移动设备158的地点可显示在二维地图上,其中高度作为注解,或者可显示在三维地图上。
[0051] 移动设备158可连接到接入点176。移动设备158可以是可发送其地点(包括纬度、经度和海拔高度坐标)到系统的知道地点的移动设备。系统可基于从移动设备158接收的纬度、经度和海拔高度坐标来计算平均地点。以平均地点为中心且以误差容限为半径的三维空间174可与接入点176相关联。空间174可表示这样的空间:当移动设备连接到接入点176时移动设备很可能定位于其中。在本申请中,空间174将称为存在空间。
[0052] 系统可将有关存在空间174的信息发送给连接到接入点176的移动设备。接收该信息的移动设备可使用该信息来确定其地理地点。系统可将三 维地理空间划分为三维栅格170。三维栅格170可由三维小区172构成。每个三维小区172可具有到与地理网格150的小区
152对应的二维区域的投影。每个三维小区172可具有高度(例如以米为单位测量)作为维度。如果存在空间174的中心在小区172中则存在空间174可被称作位于小区172中。系统可基于存在空间的普及性(例如在存在空间中从移动设备158到接入点176做出了多少连接)、存在空间174的稳定性(例如存在空间174一直以来的稳定状况)、接入点176的寿命(例如接入点176已经存在了多久)、以及存在空间174的新鲜度(例如何时来自连接到接入点176的移动设备158的最近一次地点发送被接收)来限制小区172中存在空间的数目。
[0053] 系统可基于三维栅格170的三维小区172来发送有关存在空间174以及相邻存在空间的信息到连接到接入点176的移动设备(例如移动设备160)。移动设备160可使用该信息来估计移动设备160在三维空间中的当前地点,并在三维地图上显示估计的当前地点。
[0054] 用于确定无线接入点的地点的示例性服务器侧处理和系统
[0055] 图3A-3C例示出确定无线接入点的地点的示例性阶段。出于简便起见,将参考包括实现技术的服务器的系统来描述技术。
[0056] 图3A例示出可用来确定与接入点155相关联的存在区域的多步骤分析的示例性阶段。接入点155可具有覆盖区域202,其可通过接入点155的发射器的信号强度以及其他因素(例如围绕接入点155的地理区域的物理特性)确定。位于覆盖区域202内的移动设备158可无线连接到接入点155。接入点155可允许移动设备158通过各种网关连接到有线网络。有线网络可包括数据网络(例如因特网)、公共交换电话网(PSTN)、其他数字或模拟网络、或者以上的组合。
[0057] 移动设备158可包括知道地点的移动设备(例如有GPS功能的移动设备)。每个知道地点的移动设备158(被表示为图3A的黑三角形)可检测其当前地理地点。当前地理地点可通过包括移动设备158的纬度和经度的地理坐标表示。当移动设备158与接入点155通信时,移动设备158可 通过接入点155发送地点信息到系统。地点信息可与接入点155的标识符(例如接入点155的媒体访问控制(MAC)地址)相关联。系统可使用从多个移动设备158接收的地点信息来确定可与接入点155相关联的存在区域。存在区域不一定包含接入点150所实际位于的地点。存在区域也不是必须对应于覆盖区域202的地理地点或形状,尽管存在区域可能位于覆盖区域202内。
[0058] 移动设备158在覆盖区域202内的分布可与移动设备158在特定时间(例如接入点155所在时区的上午8:30当地时间)的快照对应。每个移动设备158可与单个地点相关联。移动设备158在覆盖区域202内的分布还可对应于移动设备158在一时间段(例如从早4点到10点的6个小时)上的地点对应。每个移动设备158可与多个地点相关联(例如当移动设备158移动时)。与多个地点相关联的单个移动设备158可通过系统中多个地点来表示,如通过图
3A中多个三角形所例示的。
[0059] 服务器可确定从移动设备158接收的一组地点的平均地理地点。地点组可包括在一特定时间或在一特定时间段期间从移动设备158接收的地点。平均地理地点可被指定为圆形204a的中心244a。圆形204a的中心244a不是必须与接入点(例如接入点155或接入点200)的地点一致。服务器可计算平均地理地点和组中每个地点的距离并识别一个或多个离群值(outlier)。离群值可以是组中定位得离平均地理地点最远的地点。距离中心超出阈值的离群值(例如地点210)可被排除出组。圆形204a可具有这样的半径245a,其与在排除离群值之后在平均地理地点和当前组中的地点之间的最长距离对应。
[0060] 图3B例示出在图3A的阶段之后的多步骤分析的示例性阶段。到图3A的平均地理地点(圆形204a的中心244a)的距离超出阈值的地点已经被排除出组。阈值可被配置来排除位置的某个百分比(例如图3A的地点的百分之五)。新的平均地理地点可基于组中剩余的地点(例如剩余的百分之九十五的地点)来计算。新的平均地理地点可以例如是圆形204b的中心244b。在各种实现方式中,计算新的平均地理地点可包括对组中的剩余地点求取平均,选择组中的中间地理地点(例如通过选择中间纬度或中 间经度),或者应用其他算法。用于计算平均地理地点的算法可以在多步骤分析的各步骤中相同或者在各步骤中彼此不同。
[0061] 用圆形204b围起的区域可以小于如在前一步骤中当离群值地点被排除时确定的圆形204a围起的区域。更小的区域可反映出增大的计算精度。圆形204b的中心244b不一定与圆形204a的中心244a一致。在一些实现方式中,圆形204b的半径245b可与距离圆形204b的中心244b最远的移动设备158的剩余地点对应。半径可表示新估计的在当前步骤中计算出的存在区域的误差容限。
[0062] 图3C例示出多步骤分析的示例性最终阶段。当一定的退出条件被满足时,系统可在最终阶段之后终止迭代处理。最终阶段可产生与移动设备158的位置的集群(cluster)对应的最终平均地理地点。最终平均地理地点可表示为圆形204c的中心244c。圆形204c可具有与最终误差容限对应的半径245c,其基于最终平均地理地点与集群中地点之间的距离。圆形204c可通过接入点155的标识符(例如MAC地址)被指定为与接入点155相关联的存在区域。
[0063] 服务器可基于各种因素判断在地点数据库中是否包括接入点155的标识符和相关联的存在区域。例如,服务器可对地理网格150的小区152中的存在区域数目进行计数,并基于普及性、稳定性和寿命来选择多个存在区域。服务器可发送这些存在区域(如果存在区域204c被选择则包括存在区域204c)的信息给移动设备(例如移动设备215),而不论移动设备
215是否是有GPS功能的的。
[0064] 图3D例示出在三维空间中确定无线接入点地点的示例性阶段。在图3D中,轴X、Y和Z可用于指示三维空间。例如,轴X、Y和Z可分别表示经度、纬度和海拔高度。出于简便起见,接入点176的地点被示出为与图3D中的X、Y和Z轴上的零点一致。在一些实现方式中,接入点176的实际地点(例如纬度、经度和海拔高度坐标)在计算中是可选的。
[0065] 图3D中的每个三角形可表示位于三维空间中的移动设备的地点。这些地点可具有在三维空间中的平面上的投影(例如投影226)。平面可被定义在任意海拔高度(例如接入点176的海拔高度)。例如,平面可通过 X和Y轴来定义。接入点176可对应于覆盖区域222,其可由接入点176的信号强度以及其他限制因素(例如楼层、顶层、信号路径上的建筑)确定。
[0066] 多步骤分析可基于从位于小区空间202中的知道地点的移动设备158接收的一组地点来将地理空间与WLAN的接入点176相关联。在多步骤分析的一步骤中,平均地理地点(例如空间224的中心)可通过例如对组中的地点的纬度、经度和海拔高度坐标求取平均来确定。在平均地理地点和覆盖空间222中的地点之间的距离可被计算。位于覆盖空间222内然而足够远离平均地理地点的地点可被排除出组并排除出进一步的计算。空间224的半径可通过例如在组中剩余地点和平均地理地点之间的最远距离来确定。
[0067] 系统可重复计算组中的平均地理地点的阶段,计算平均地理地点与组中地点之间的距离,并基于所计算的距离将地点排除出组。重复可继续直到一退出条件被满足。中心在平均地理地点且半径基于平均地理地点与组中剩余地点之间距离的空间可被指定为可与接入点176相关联的存在空间。
[0068] 图4A是例示出确定无线接入点的地点的示例性处理300的流程图。处理300可用来例如确定与WLAN的接入点相关联的存在区域或存在空间。存在区域或存在空间可用来确定没有GPS功能的移动设备的地点。出于简便起见,将参考实现处理300的系统来描述处理300。
[0069] 系统可接收(302)来自连接到接入点155的一个或多个第一移动设备158的一组地点。每个地点可通过一组地理坐标(例如纬度、经度和海拔高度)来表示。地点可与接入点的标识符(例如MAC地址)相关联。接入点的标识符可在接入点155与系统通信时由接入点155主动提供。在各种实现方式中,地点组可对应于一时间段(例如6小时或者接入点155所位于的时区的早6点到10点)。
[0070] 在一些实现方式中,时间段可被配置为反映在一天当中的各个小时的特定使用模式的特性。连接到接入点155的移动设备最可能位于其中的区域可能在一天当中变化,从而指示出特定小时中的各种使用模式。例如, 时间段可对应于“上下班时间”、“上班时间”、“夜间”等。一天中时间的特性可对应于移动设备158的各种使用模式。例如,在上下班时间期间,与接入点155相关联的存在区域可能在高速公路或其附近;在上班时间期间,与接入点155相关联的存在区域可能在办公大楼或其附近;在夜间,与接入点155相关联的存在区域可能铺开来而没有特定的集中点。系统可基于所接收到的例如从早4点到10点的地点来计算存在区域,并且基于所接收到的从早10点到午4点的地点重新计算存在区域,等等。在每个特性时间段中接收到的地点可被成组到系统中的一组中。地点可以任意数据结构(例如组、列表、数组、关系型数据库中的记录等)存储在耦接到服务器的存储设备上。
[0071] 系统可基于所接收的地点组的平均来确定(304)与接入点155相关联的地理地点。地理地点可包括如上所述的存在区域或存在空间。存在区域或存在空间可通过例如接入点
155的MAC地址与接入点155相关联。在一些实现方式中,确定地理地点可包括对所接收的地点组应用多步骤算法,包括在每一步骤中将至少一个地点排除出组。确定地理地点可包括周期性地应用多步骤算法。
[0072] 系统可基于包括接入点155的普及性、地理地点的稳定性和接入点155的寿命在内的各种因素,将接入点155和与接入点155相关联的地理地点指派(306)给地理栅格(例如地理栅格150)上的小区(例如小区152)。在一些实现方式中,接入点155的普及性可测量有多少移动设备158连接到接入点155。接入点的普及性可通过例如有多少连接到接入点155的移动设备158的地点在一时间段中被系统接收到来测得。
[0073] 与接入点155相关联的存在区域的稳定性可反映出在存在区域被用于估计连接到接入点155的设备的地点的情况下存在区域有多稳定。与接入点155相关联的存在区域的稳定性可通过例如比较通过最近两次计算而计算出的存在区域并确定这些存在区域之间的重叠程度来测得。重叠程度越高,存在区域越稳定。
[0074] 接入点155的寿命可反映出与接入点155相关联的数据的质量。例如,存在于数据库中更长时间的接入点可能比新近添加的接入点更可靠。 接入点155的寿命可通过地点数据库中的数据历史测得。
[0075] 在一些实现方式中,数据的新鲜度也可被用来确定与接入点155相关联的存在区域是否将被指派给地理栅格150的小区152。数据的新鲜度可通过系统多久以前接收了来自移动设备158的最新近地点来测得。
[0076] 系统可基于普及性、稳定性、寿命和新鲜度来分级位于地理栅格150的小区152中的各存在区域。位于小区152中的所有存在区域的至少一部分(例如包括与接入点155相关联的存在区域在内三个存在区域)可被指派给小区152。所指派的接入点和存在区域可用来定位连接到接入点155的移动设备(例如移动设备160)。未被指派的存在区域可存储在地点数据库中供将来使用。
[0077] 系统可将与接入点155相关联的地理地点提供(308)给连接到接入点155的第二移动设备(例如移动设备160)。系统还可将位于同一小区中的其他地理地点以及指派给相邻小区的与接入点相关联的地理地点提供给第二移动设备。地点可在请求时或者使用各种推送或广播技术从接入点155被发送给第二移动设备。
[0078] 在一些实现方式中,系统可接收、处理并发送三维地点信息。存在空间(例如存在空间174)可被指派给地理三维栅格(例如三维栅格170)上的三维小区(例如三维小区172)。地点可在请求时或者使用各种推送或广播技术从接入点176被发送给连接到接入点176的第二移动设备。
[0079] 图4B是例示出利用一组地点来计算平均地理地点的示例性处理304的流程图。出于简便起见,将参考实现处理304的系统来描述处理304。
[0080] 系统可利用组中的地点来计算(324)平均地理地点。计算平均地理地点可包括计算组中地点的纬度、经度和海拔高度的平均值,并指定所计算出的平均纬度、经度和海拔高度作为平均地理地点。在一些实现方式中,计算平均地理地点可包括指定组中的位置中的在中间纬度、中间经度和中间海拔高度处的位置作为平均地理地点。
[0081] 系统可计算(326)在组中地点和平均地理地点之间的距离。在一些实现方式中,系统可计算欧几里得空间中的在组中每个地点和平均地理地点之间的直线距离。在一些实现方式中,系统可计算将地球曲率考虑在内 的在组中每个地点和平均地理地点之间的测地距离。
[0082] 在阶段326中算出的距离可被指定为与中心相关联的半径。中心可以是在阶段324中算出的平均地理地点,其可以是圆形(例如圆形204a)的中心(例如中心244a)。圆形的半径(例如半径245a)可基于在地点之中的组中一地点和平均地理地点之间的至少一个距离来确定。在一些实现方式中,半径可以等于在平均地理地点和剩余在组中的地点之间的最远距离。在一些方式中,半径可以是这样的距离:当圆形106d利用该半径并以平均地理地点为中心被绘制时,该圆形可包含一百分比(例如百分之八十)的剩余在组中的地点。半径可表示一误差容限,超出该误差容限,对没有GPS功能的移动设备的地点的估计不太可能具有统计意义。
[0083] 系统可基于平均地点和地点之间的距离来从该组排除(328)至少一个地点。在一些实现方式中,系统可排除到平均地理地点的距离超出阈值距离的地点。在多步骤分析的每一步骤中,系统可通过排除看起来是远离地点集中地(例如集群)的地点来增大所估计的平均地理地点的精度。远离地点集群的地点可能在估计与接入点155相关联的存在区域时不太有用,并且可被排除。在各种实现方式中,阈值距离可随着从一个步骤到下一步骤而改变。在一些实现方式中,阈值距离可以是距平均地理地点的、组中一定百分比(例如百分之九十五)的地点定位于其中的距离。在一些实现方式中,阈值距离可以是与步骤对应的一组距离(例如用于第一步骤的250米、用于第二步骤的150米、等等)。系统可在平均地理地点和至少一个地点之间的距离超出阈值距离时将该至少一个地点排除出组。
[0084] 系统可重复处理的阶段324、326、和328直到满足退出条件。系统可判断(330)用于终止重复的退出条件是否被满足。在一些实现方式中,当重复次数达到阈值次数(例如10次)时退出条件可被满足。阈值次数以及要排除的地点的百分比可以是可配置的从而精细调谐在确定性(例如更大存在区域会产生小区中的移动设备实际上位于该存在区域中的更高置信度)和精度(例如更小存在区域会产生移动设备的更准确的地点)之间的平衡。例如,当百分比被设定为95%并且步骤次数被设定为10时,最终的步骤可产生包含所有地点数据点的大约60%的圆形。
[0085] 在一些实现方式中,当存在区域或存在空间足够小时,阶段330的退出条件被满足。在移动设备高度集中的小区中,存在区域可能足够小以至于更多步骤不一定增大精度。阶段324、326、和328的重复可在圆形的半径达到阈值半径以下时终止。例如,阈值半径可以是8-10米。基于所接收的组中地点的分布模式(例如,所接收地点数据点的个数、地点数据点的密度以及小区中的集中区域),阈值半径可随接入点的不同而不同。
[0086] 系统可将地理区域指定(332)为圆形,该圆形以平均地理地点为中心并且半径基于至少一个算出的距离。地理区域可与接入点(例如接入点155)相关联。服务器可提供地理区域(例如中心和半径)供显示在移动设备的地图显示上。中心可以纬度和经度来表示。在三维空间中计算距离的一些实现方式中,中心可进一步以海拔高度来表示。
[0087] 图4C是例示出实现确定无线接入点的地点的技术的示例性系统的框图。系统可包括一个或多个处理器、存储指令的一个或多个存储设备、以及其他硬件或软件组件。系统可包括地点引擎350,其可用于确定将与接入点(例如接入点155)相关联的存在区域或存在空间。
[0088] 地点引擎350可包括数据收集模块352,其可通过各个接入点从各个移动设备接收数据。数据可包括可指示出一个或多个知道地点的移动设备(例如移动设备158)的地点以及指示出移动设备158连接到哪个接入点的接入点标识符(例如接入点155的MAC地址)的多个数据点。在一些实现方式中,数据点还可包括有关移动设备158所位于的时区的信息。数据收集模块352可包括可接收从移动设备158发送的数据的数据接收模块354和数据索引模块356。数据索引模块356可对所接收的数据点执行各种处理。例如,数据索引模块356可基于小区ID来排序纬度、经度和海拔高度。数据索引模块356还可基于时间段将数据成组到组中。例如,可针对可配置的时间段(例如6个小时)来创建接收地点的新组。
[0089] 移动设备158的所接收地点的组可被存储在数据点数据库360中。数据点数据库360可存储移动设备158的当前和历史地点。数据点数据库360可包括adhoc数据库、关系数据库和/或面向对象的数据库。数据点数据库360可容宿在本地或相对于地点引擎350远程地容宿。
[0090] 地点计算模块364可用来计算数据点数据库360中数据点的组中的平均地理地点,计算平均地理地点和各数据点的地点之间的距离,并且将一些地点排除出组以进行进一步计算。地点计算模块364可针对特定组(例如与小区ID相关联的数据点的组)执行计算直到针对该特定组的退出条件被达到为止。地点计算模块364可针对各接入点(例如接入点155)确定存在区域或存在空间。
[0091] 在一些实现方式中,地点计算模块364可利用有效性检查器366基于各种标准和数据点中的各种数据来对存在区域或存在空间执行有效性检查。例如,从移动设备158接收的数据点可包括移动国家代码(MCC)和时区信息。有效性检查器366可将计算出的存在区域或存在空间与对应于由MCC表示的国家的多边形以及对应于时区的多边形进行比较。如果计算出的存在区域或存在空间位于多边形外,则有效性检查器366可登记异常并去除接入点。
[0092] 地点过滤引擎368可判断存在区域或存在空间是否可用于估计当前连接到接入点的移动设备的地点。地点过滤引擎368可将地理区域划分为地理栅格150的小区152或者三维栅格170的三维小区172。地点过滤引擎368可基于普及性、稳定性、寿命和新鲜度来分级存在区域或存在空间。地点过滤引擎368可将位于每个小区152或三维小区172中的顶级存在区域或存在空间指派给小区152或三维小区。
[0093] 存在区域和存在空间可通过具有地点组的平均纬度、经度和海拔高度的中心来定义。存在区域和存在空间可进一步通过基于从地点组中的地点到中心的距离而确定的半径来定义。存在区域和存在空间的中心的纬度、经度和海拔高度坐标以及存在区域和存在空间的半径可存储在地点数据库372中。地点数据库372可存储指派的和未被指派的存在区域以及存在空间二者。未指派的存在区域或存在空间可在地点计算模块364的后续计算中被指派。地点数据库372可通过地点计算模块364被周期性地更新。
[0094] 地点数据库372的数据可利用数据分发模块376被分发给移动设备。数据分发模块376可在请求时、通过广播、或者在不从移动设备接收请求的情况下利用各种推送技术将与接入点相关联的所指派的存在区域和存在 空间的信息(例如中心坐标和半径)发送给移动设备(例如没有GPS功能的移动设备160)。
[0095] 在一些实现方式中,数据分发模块376可在一个传输会话中发送多个存在区域和存在空间给移动设备。为了减少可能消耗移动设备通信带宽的向移动设备的地点发送的次数,数据分发模块376可使用邻居定位器378来定位作为移动设备160所定位的小区的邻居的小区。相邻小区例如可包括围绕移动设备160所定位的小区的多个小区以使得小区和围绕小区的总面积覆盖一定地理区域(例如一两个平方千米)。发送有关于与多个小区(例如400个小区)相关联的存在区域和存在空间给移动设备160可在160跨小区移动时减少发送次数。在这样的实现方式中,数据分发模块376只需在移动设备160移出先前发送的所有小区时发送更新给移动设备160。
[0096] 利用地点过滤来确定移动设备的地点
[0097] 图5A例示出用于利用无线接入点的地点来确定移动设备的地点的技术。移动设备400可以是可使用无线接入点的地点来确定它的地点的示例性移动设备。通信网络的包括移动设备400的示例性部分被例示出。
[0098] 移动设备400可无线连接到接入点404a。从接入点404a,移动设备400可接收包括有关于相邻接入点的存在区域或存在空间(包括存在区域406)的信息的数据。移动设备400可将接收的数据存储在存储设备上。所存储的数据可被周期性地更新。
[0099] 在所示示例中,移动设备400连接到接入点404a。此外,移动设备400处于接入点404b、404c和404d的通信范围内。移动设备400可根据用于WLAN中的无线通信协议(例如IEEE 802.11a)识别出接入点404a、404b、404c和404d。接入点404a、404b、404c和404d可通过接入点的MAC地址或其他标识符(例如蓝牙(BluetoothTM)标识符)而被识别出。
[0100] 移动设备400可识别出分别与接入点404a-d相关联的存在区域406a、406b、406c和406d。识别存在区域406a-d可包括从耦接到移动设备400 的存储器设备取回有关于存在区域406a-d的信息。在一些实现方式中,移动设备400可通过向服务器发送接入点404a-d的标识符来从服务器请求存在区域406a-d。
[0101] 基于存在区域406a-d,移动设备400可对存在区域406a-d执行迭代处理(例如多步骤分析)。迭代处理可产生地理区域402,这可作为移动设备400的当前地理地点的估计。当三维地点信息被使用时,地理区域402可以是地理空间。移动设备400可将所估计的当前地点显示在显示设备上(例如显示在地图显示上)。
[0102] 图5B是例示出利用移动国家代码的地点过滤的示例性处理410的流程图。为了简便,将参考实现处理410的移动设备400来描述处理410。
[0103] 移动设备400可以无线方式接收(412)一个或多个接入点404的标识符以及当前MCC。接入点404的标识符(例如MAC地址)可从接入点接收。接入点可能具有重叠的覆盖区域。例如,移动设备400可位于多个接入点(例如接入点404)的通信范围内。MCC可从蜂窝通信网络的收发机(例如小区塔)来接收。
[0104] 移动设备400可识别(414)多边形,该多边形是与当前MCC对应的地理区域的边界框。地理区域可以与国家或国家的一部分(例如阿拉斯加州)对应。多边形可通过地理区域的极端点的纬度和经度坐标来定义。多边形可从与MCC相关联地存储着多边形的地理数据库中被识别。地理数据库可以是移动设备400的本地数据库。例如,移动设备400可在本地地理数据库中存储作为通过MCC而识别出的地理区域的边界框的多边形。地理数据库也可以远程地存储(例如存储在远程定位的服务器计算机上)。地理数据库可被服务器预填充并安装在(例如被下载到)移动设备400上。
[0105] 在一些实现方式中,国家的多边形可进一步与时区相关联,这可扩展基于MCC的地点过滤。多边形可进一步通过国家内的时区来定义。多边形可通过MCC以及当前时区来识别。例如,边界框102a-c可与MCC310-316(美国)相关联。边界框102a可进一步与阿拉斯加州时区(格林威治标准时间(GMT)减去9小时为标准时间)相关联。边界框102b可 被进一步划分为子框,各子框对应于东部时区(GMT减去5小时)、中部时区(GMT减去6小时)、山地时区(GMT减去7小时)和太平洋时区(GMT减去8小时)。边界框102c可进一步与夏威夷/阿留申群岛时区(GMT减去10小时)相关联。
[0106] 移动设备400可从小区塔接收经过编码的当前时区。移动设备400的通信和控制处理器(例如基带处理器)可解码所接收的当前时区。从MCC和当前时区,移动设备400可识别子边界框。如果移动设备400检测到移动设备400所连接的接入点的地点在子边界框之外,则移动设备可滤除该接入点。例如,如果移动设备400确定了当前MCC是“310”(美国),则移动设备400可识别边界框102。当移动设备400确定出当前时区是GMT减去10小时,则移动设备可确定边界框是102c。移动设备400可将边界框102c用于后续计算。
[0107] 移动设备400可利用所接收的接入点标识符从地点数据库中选择(416)一组接入点地点。如果地点在识别出的多边形内则地点可被选择。地点数据库可包括接入点的标识符(例如MAC地址)和对应的接入点地理坐标。地点数据库可存储在移动设备400上。例如,移动设备可包括一组预定接入点地点(例如在机场或其附近的接入点)。地点数据库可从服务器被周期性地更新。地点数据库例如可在服务器检测到接入点的移动时被更新。与当前连接的接入点对应的、在与当前MCC和时区对应的多边形之外的地点记录可被排除出地点数据库并排除出进一步的计算。
[0108] 移动设备400可基于所选择的这组接入点地点的平均地点,来确定(418)移动设备400的当前地点。确定当前地点的步骤可包括将自适应地点计算处理应用于已经利用MCC和时区进行了过滤的接入点地点组。确定当前地点的进一步细节,包括自适应地点计算处理,将在下文中结合图5C进一步详细描述。移动设备400可将当前地点显示在移动设备的地图显示(map display)上。
[0109] 图5C是例示出利用无线接入点的地点来确定移动设备的地点的示例性处理418的流程图。出于简便起见,将参考实现处理418的移动设备400来描述处理418。
[0110] 地点数据库可包括无线通信网络(例如WLAN)的接入点(例如接入点404)的标识符和与接入点相关联的一组地点。地点组可对应于与接入点相关联的存在区域406或存在空间。每个地点可通过地理坐标(例如纬度、经度和海拔高度)来表示。每个地点可与接入点404的标识符(例如MAC地址)相关联。在各种实现方式中,地点组可从服务器周期性地或者在请求时被接收。
[0111] 移动设备400可利用组中的地点来计算(434)平均地理地点。计算平均地理地点可包括计算组中地点的平均纬度、经度和海拔高度,并将在所算出的平均纬度、经度和海拔高度处的位置指定为平均地理地点。在一些实现方式中,计算平均地理地点可包括将组中位置中的处于中间纬度、中间经度和中间海拔高度的地点指定为平均地理地点。
[0112] 移动设备400可计算(436)组中地点和平均地理地点之间的距离。在一些实现方式中,系统可计算欧几里得空间中在组中每个地点和平均地理地点之间的直线距离。在一些实现方式中,系统可计算将地球曲率考虑在内的在组中每个地点和平均地理地点之间的测地距离。
[0113] 在阶段436中算出的距离可被指定为与中心相关联的半径。中心可以是在阶段434中算出的平均地理地点,其可以是圆形(例如圆形围绕地理区域402)的中心。圆形的半径可基于在地点之中的组中一地点和平均地理地点之间的至少一个距离来确定。在一些实现方式中,半径可以等于在平均地理地点和剩余在组中的地点之间的最远距离。在一些方式中,半径可以是这样的距离:当圆形被利用该半径并以平均地理地点为中心绘制时,该圆形可包含组中剩余的某个百分比(例如百分之八十)的地点。半径可表示误差容限,超出该误差容限,对没有GPS功能的移动设备的地点的估计不太可能具有统计意义。
[0114] 移动设备400可基于平均地点和地点之间的距离将至少一个地点排除(428)出组。在一些实现方式中,系统可排除到平均地理地点的距离超出阈值距离的地点。在多步骤分析的每一步骤中,系统可通过排除看起来是远离地点集中地(例如集群)的地点来增大所估计的平均地理地点的精度。远离地点集群的地点可能在估计移动设备400的当前地点时不太有 用,并且可被排除。在各种实现方式中,阈值距离可随着从一个步骤到下一步骤而改变。在一些实现方式中,阈值距离可以是距平均地理地点的、组中一定百分比(例如百分之九十五)的地点定位于其中的距离。在一些实现方式中,阈值距离可以是与步骤对应的一组距离(例如用于第一步骤的50米、用于第二步骤的30米、等等)。系统可在平均地理地点和至少一个地点之间的距离超出阈值距离时将该至少一个地点排除出组。
[0115] 系统可重复处理430的阶段434、436、和438直到退出条件被满足为止。系统可判断(440)用于终止重复的退出条件是否被满足。在一些实现方式中,当重复次数达到阈值次数(例如5次)时退出条件可被满足。阈值次数可与原始接收组中的地点数目有关。阈值次数以及要排除的地点的百分比可以是可配置的从而精细调谐在确定性(例如更大存在区域会产生小区中的移动设备实际上位于该存在区域中的更高置信度)和精度(例如更小存在区域会产生移动设备的更准确的地点)之间的平衡。例如,当百分比被设定为95%并且步骤次数被设定为10时,最终的步骤可产生包含所有地点数据点的大约60%的圆形。
[0116] 在一些实现方式中,当存在区域或存在空间足够小时,阶段440的退出条件被满足。在接入点404高度集中的区域中,所估计的当前地点可能足够小以至于更多步骤不一定增大精度。阶段434、436、和438的重复可在圆形的半径达到阈值半径以下时终止。例如,阈值半径可以是8-10米。阈值半径可以基于存在区域406的半径。在一些实现方式中,如果存在区域406的一些半径足够小,则阈值半径可以较小以反映出有关估计的置信度。
[0117] 移动设备400可利用以平均地理地点为中心并具有基于至少一个算出的距离的半径的圆形来显示移动设备400的当前地点。中心可以纬度和经度来表示。在三维空间中计算距离的一些实现方式中,中心可进一步以海拔高度来表示。在一些实现方式中,移动设备还可在地图用户界面上将当前地点显示在显示设备上。示例性地图用户界面将在下文中参考图6来描述。
[0118] 用于确定移动设备地点的示例性用户界面
[0119] 图6例示出用于利用无线接入点的地点来确定移动设备的地点的示例性用户界面。在图6中,具有一地理区域的示例性地图(地图502)被显示在移动设备500上。在一些实现方式中,移动设备500可在移动设备500的触敏显示器530上显示地图502。当用户选择地图对象144来查看地图以及基于地点的服务时,地图502可被显示。在一些实现方式中,诸如地图对象144之类的对象可通过语音激活来选择。搜索条504和书签列表对象506可显示在地图502的顶部。在地图底部之下,一个或多个显示对象可被显示,例如搜索对象508、路线对象510、地图查看对象512、和当前地点对象514。
[0120] 搜索条504可用来在地图上查找地址或者说地点。例如,用户可在搜索条504中输入其家庭地址,然后包含该地址的区域将显示在地图502上。书签列表对象506例如可带出包含经常访问的地址(例如用户的家庭地址)的书签列表。书签列表例如还可包含诸如当前地点(例如移动设备500的当前地点)之类的专用书签。
[0121] 搜索对象508可用来显示搜索条504及其他地图相关搜索菜单。路线对象510可例如带出允许用户输入起点和终点地点的菜单界面。该界面可然后显示信息(例如用于从起点地点到终点地点的路由的路线和行程时间)。地图查看对象512可带出将允许用户选择针对地图502的显示选项的菜单。例如,地图502可从黑白变为彩色,地图的背景可改变,或者用户可改变地图的亮度。
[0122] 当前地点对象514可允许用户在地图502上看到指示出设备150当前定位的地理区域516。地理区域516可对应于估计的地理区域(例如地理区域402),其中心是与落入移动设备500的通信范围内的接入点相关联的数据点的平均地理地点。地理区域516的半径可以是基于在平均地理地点和与接入点相关联的一个或多个地点之间的距离来确定的。当当前地点对象514被选择时,专用当前地点标签可被置于书签列表中。如果专用当前地点标签之前已经被设定在书签列表中,则旧书签信息例如可被新当前地点信息替代。在一些实现方式中,专用当前地点标签被捆绑到地理区域 516的图心。即,专用当前地点标签可包括地理区域516的图心的坐标。地理区域516可基于利用存储在移动设备500的存储器设备中的地点指令而确定或估计出的地点数据。地理区域516例如可通过圆形、矩形、正方形、多边形或其他有十字准线的封闭区域或者一些其他有特色的要素来图示从而将地理区域516从地图502区分出来。
[0123] 在一些实现方式中,地理区域516可指示移动设备500被确定或估计为定位于其中的区域,并且该地理区域可能不一定以移动设备500的实际当前位置为中心。在此示例中,移动设备500可能定位得偏离该地理区域的中心。在另一示例中,地理区域516可以移动设备500的所估计的当前位置为中心。
[0124] 移动设备500例如可以在当前地点对象514被轻敲或以其他方式被选择时使地图视图以地理区域516为中心。在一些实现方式中,地图的缩放水平可基于地点数据的准确性或精度或者提供了地点数据的技术、系统或服务而被调整。例如,当移动设备500不能接收GPS信号并且使用接入点数据来确定其地点时,地图可被缩小为较低准确性。如果移动设备500能够使用GPS地点数据来确定其当前地点则地图可被放大为更高准确性。在一些实现方式中,缩放水平可基于移动设备500的速率(例如,在更高速度时地图可被缩小而当移动设备500不动时地图可被放大)。准确性或精度和速率的组合也可被使用。
[0125] 如果用于取回基于地点的数据的所有方法失败(例如当移动设备500不在任一接入点的通信范围内时或者当有效性检查器366确定没有任何存在区域可与移动设备500可连接到的任意接入点相关联时),并且没有任何其他系统或服务可用于确定或估计移动设备500的当前位置,则错误可被显示给用户并且没有地理区域被显示在地图502上。错误例如可以包含给用户的通知他们失败以及失败的一个或多个可能原因的消息。
[0126] 当前地点对象514可被选择以例如激活在地图502上对地理区域516的估计和显示、获得去往估计出的当前地点(即地理区域516的图心)或者从其出发的路线、将移动设备500的估计出的当前地点发送给朋友(例如从而使得朋友可去往同一地点)、创建用于估计出的当前地点的书签。
[0127] 示例性移动设备架构
[0128] 图7是移动设备的示例性架构700的框图。移动设备例如可以是手持计算机、个人数字助理、蜂窝电话、电子输入板(electronic tablet)、网络家电、相机、智能手机、增强通用包无线电服务(EGPRS)移动电话、网络基站、媒体播放器、导航设备、电子邮件设备、游戏机、或者这些数据处理设备或其他数据处理设备中任意两个或更多个的组合。
[0129] 移动设备可包括存储器接口702,一个或多个数据处理器、图像处理器和/或中央处理单元704,以及外围接口706。存储器接口702、一个或多个处理器704和/或外围接口706可以是分立的组件或者可以被集成在一个或多个集成电路中。移动设备150中的各组件可通过一个或多个通信总线或信号线来耦接。
[0130] 传感器、设备和子系统可耦接到外围接口706以辅助多个功能。例如,运动传感器710、光传感器712、和接近传感器714可耦接到外围接口706来辅助移动设备的定向、照明和接近度功能。位置处理器715(例如GPS接收器)可连接到外围接口706来提供地理定位。电子磁力计716(例如集成电路芯片)也可连接到外围接口706来提供可用来确定地磁北的方向的数据。
[0131] 相机子系统720和光学传感器722(例如电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器)可被用来辅助相机功能,比如记录相片和视频剪辑。
[0132] 可通过可包括射频接收器和发射器和/或光学(例如红外)接收器和发射器的一个或多个无线通信子系统724来辅助通信功能。通信子系统724的具体设计和实现方式可取决于移动设备意欲工作于其上的(一个或多个)通信网络。例如,移动设备可包括被设计为在GSM网络、GPRS网络、EDGE网络、Wi-Fi或WiMax网络以及蓝牙网络上工作的通信子系统724。具体地,无线通信子系统724可包括虚拟主机协议以使得设备可被配置为其他无线设备的基站。
[0133] 音频子系统726可耦接到扬声器728和麦克风730来辅助语音使能功 能,比如语音识别、语音复制、数字记录以及电话功能。
[0134] I/O子系统740可包括触屏控制器742和/或一个或多个其他输入控制器744。触屏控制器742可耦接到触屏746或触摸板(pad)。触屏746和触屏控制器742例如可以利用多种触敏技术(包括而不限于电容式、电阻式、红外和表面声波技术)以及其他接近传感器阵列或用于确定与触屏746的一个或多个接触点的其他元件来检测其接触、移动或故障。
[0135] 一个或多个其他输入控制器744可耦接到其他输入/控制设备748,比如一个或多个按钮、摇臂开关、拇指轮、红外端口、USB端口和/或诸如触笔之类的点选设备。一个或多个按钮(未示出)可包括用于扬声器728和/或麦克风730的音量控制的上/下按钮。
[0136] 在一种实现方式中,按压按钮达第一持续时间可解除触屏746的锁定;并且按压按钮达比第一持续时间更长的第二持续时间可导通或切断给移动设备的电力。用户可能能够定制一个或多个按钮的功能。触屏746例如还可用于实现虚拟或软按钮和/或键盘。
[0137] 在一些实现方式中,移动设备可呈现记录的音频和/或视频文件,例如MP3、AAC和MPEG文件。在一些实现方式中,移动设备可包括MP3播放器(例如iPodTM)的功能。移动设备因此可包括与iPod兼容的插头连接器。其他输入/输出以及控制设备也可被使用。
[0138] 存储器接口702可耦接到存储器750。存储器750可包括高速随机存取存储器和/或非易失性存储器,例如一个或多个磁盘存储设备、一个或多个光学存储设备和/或闪存(例如NAND、NOR)。存储器750可存储操作系统752,例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS,或者诸如VxWorks之类的嵌入式操作系统。操作系统752可包括用于处理基本系统服务以及用于执行硬件相关任务的指令。在一些实现方式中,操作系统752可包括内核(例如UNIX内核)。
[0139] 存储器750还可存储用于辅助与一个或多个额外设备通信的通信指令754。存储器750可包括用于辅助图形用户界面处理的图形用户界面指令756;用于辅助传感器相关处理和功能的传感器处理指令758;用于辅助电话相关处理和功能的电话指令760;用于辅助电子消息相关处理和功能的 电子消息指令762;用于辅助web浏览相关处理和功能的网络浏览指令764;用于辅助媒体处理相关处理和功能的媒体处理指令766;用于辅助GPS和导航相关处理和指令的GPS/导航指令768;用于辅助相机有关处理和功能的相机指令770;用于辅助磁力计校准的磁力计数据772和校准指令774。存储器750可包括地点指令776,其可用来发送当前地点到接入点,并且基于与移动设备落入其通信范围内的接入点相关联的地点数据来确定估计的当前地点。存储器750还可存储其他软件指令(未示出),比如安全性指令、用于辅助web视频相关处理和功能的web视频指令、和/或用于辅助web购物相关处理和功能的web购物指令。在一些实现方式中,媒体处理指令766可被划分为用于分别辅助音频处理相关处理和功能以及视频处理相关处理和功能的音频处理指令和视频处理指令。激活记录和国际移动设备身份(IMEI)或类似硬件标识符也可存储在存储器750中。
[0140] 以上标识出的指令和应用中的每个可对应于用以执行上述一个或多个功能的指令集。这些指令不是必须被实现为分立的软件程序、过程或模块。存储器750可包括更多或更少指令。另外,移动设备的各种功能可以硬件和/或(包括在一个或多个信号处理电路和/或专用集成电路中的)软件实现。
[0141] 已经描述了主题的多种实现方式。然而,将会理解可做出各种修改而不会背离本发明的精神和范围。例如,知道地点的设备被称作有GPS功能的设备。知道地点的移动设备也可基于三角测量或其他技术。小区在图中被表示为大体矩形形状。小区的实际形状可能变化。地点被描述为“圆形”。本说明书中使用的术语“圆形”可包括不一定是完美圆形而是闭合的或具有闭合外观的任意几何形状(例如椭圆形、正方形、凸或凹多边形或者任意样式形状)。不是完美圆形的几何形状的半径可包括几何形状边界上各点与几何形状中心之间的平均距离。WiFi和WiMax网络被用作示例。其他无线技术(例如蜂窝网络)也可被采用。因此,其他实现方式也在权利要求的范围内。