实现位置服务的方法和装置制造方法

文档序号:6176850阅读:189来源:国知局
实现位置服务的方法和装置制造方法
【专利摘要】本发明提供了一种实现位置服务的方法和装置。所述方法包括:定位当前所在位置和磁北角;根据当前所在位置获取对应的地理数据;在地理数据中根据所述磁北角提取视野的标记点和所述标记点的位置;处理所述提取的标记点和所述标记点的位置,以将所述标记点显示于屏幕中。所述装置包括:定位模块,用于定位当前所在位置和磁北角;数据获取模块,用于根据当前所在位置获取对应的地理数据;提取模块,用于在地理数据中根据所述磁北角提取视野的标记点和所述标记点的位置;处理模块,用于处理所述提取的标记点和所述标记点的位置,以将所述标记点显示于屏幕中。采用本发明能识别用户当前所在的方位,进而根据用户当前所在的方位进行准确导航。
【专利说明】实现位置服务的方法和装置

【技术领域】
[0001]本发明涉及移动互联网应用技术,特别是涉及一种实现位置服务的方法和装置。

【背景技术】
[0002]用户常常通过下载电子地图并浏览下载的电子地图来获知当前所在位置以及周围环境,例如,可通过电子地图中标识的当前的在位置获知当前用户在哪一条街道上,进而根据电子地图中标记的地名获知周围所拥有的商场或酒店等信息;对于浏览景区的用户而言,也将通过加载电子地图实现景区中的定位和导航。
[0003]由于通过电子地图只能获知当前所在位置以及标记于电子地图上的其它地名,无法识别用户当前所在的方位,进而无法根据用户当前所在的方位进行准确导航。


【发明内容】

[0004]基于此,有必要针对无法识别用户当前所在的方位的技术问题,提供一种能识别用户当前所在的方位,进而根据用户当前所在的方位进行准确导航的实现位置服务的方法。
[0005]此外,还有必要提供一种能识别用户当前所在的方位,进而根据用户当前所在的方位进行准确导航的实现位置服务的装置。
[0006]一种实现位置服务的方法,包括如下步骤:
[0007]定位当前所在位置和磁北角;
[0008]根据当前所在位置获取对应的地理数据;
[0009]在地理数据中根据所述磁北角提取视野的标记点和所述标记点的位置;
[0010]处理所述提取的标记点和所述标记点的位置,以将所述标记点显示于屏幕中。
[0011]一种实现位置服务的装置,包括:
[0012]定位模块,用于定位当前所在位置和磁北角;
[0013]数据获取模块,用于根据当前所在位置获取对应的地理数据;
[0014]提取模块,用于在地理数据中根据所述磁北角提取视野的标记点和所述标记点的位置;
[0015]处理模块,用于处理所述提取的标记点和所述标记点的位置,以将所述标记点显示于屏幕中。
[0016]上述实现位置服务的方法和装置,定位当前所在位置和磁北角,根据当前所在位置获取对应的地理数据,在地理数据中提取处于磁北角对应的角度范围的标记点和标记点的位置,处理提取的标记点和标记点的位置,以将标记点显示于屏幕中,由于用户当前所在的方位进行了定位以得到相应的磁北角,并且显示于屏幕中的标记点也是根据磁北角进行提取得到的,因此,实现了用户当前所在的方位的识别,进而根据用户当前所在的方位进行了准确导航。

【专利附图】

【附图说明】
[0017]图1为一个实施例中实现位置服务的方法流程图;
[0018]图2为图1中在地理数据中根据磁北角提取视野的标记点和标记点的位置的方法流程图;
[0019]图3为一个实施例中方位角的示意图;
[0020]图4为一个实施例中磁北角的示意图;
[0021]图5为一个实施例中第一角度状态的示意图;
[0022]图6为一个实施例中第二角度状态的示意图;
[0023]图7为一个实施例中第三角度状态的示意图;
[0024]图8为图1中处理提取的标记点和标记点的位置,以将标记点显示于屏幕中的方法流程图;
[0025]图9为一个实施例中方位状态I的示意图;
[0026]图10为一个实施例中方位状态2的示意图;
[0027]图11为一个实施例中方位状态3的示意图;
[0028]图12为一个实施例中方位状态4的示意图;
[0029]图13为另一个实施例中实现位置服务的方法流程图;
[0030]图14为图13中将标记点映射到设定平面的方法流程图;
[0031]图15为一个实施例中设定平面和屏幕的示意图;
[0032]图16为图13中根据标记点在设定平面的映射在屏幕显示标记点在设定平面的分布的方法流程图;
[0033]图17为另一个实施例中根据标记点在设定平面的映射在屏幕显示标记点在设定平面的分布的方法流程图;
[0034]图18为一个实施例中实现位置服务的方法的应用示意图;
[0035]图19为一个实施例中实现位置服务的装置的结构示意图;
[0036]图20为图19中提取模块的结构示意图;
[0037]图21为图19中处理模块的结构示意图;
[0038]图22为另一个实施例中实现位置服务的装置的结构示意图;
[0039]图23为图22中第二映射模块的结构示意图;
[0040]图24为图22中标记点分布模块的结构示意图;
[0041]图25为另一个实施例中标记点分布模块的结构示意图;
[0042]图26为一个实施例中实现位置服务的终端的结构示意图。

【具体实施方式】
[0043]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0044]如图1所示,在一个实施例中,一种实现位置服务的方法,包括如下步骤:
[0045]步骤SI 10,定位当前所在位置和磁北角。
[0046]本实施例中,对用户进行定位以得到当前所在位置和磁北角,其中,当前所在位置可为用户当前所在的经纬度信息;磁北角即为当前偏离正北方向的角度,即罗盘指向角。
[0047]进一步的,将依赖于本方法所在载体,例如移动终端的硬件,通过移动终端中的GPS和罗盘进行定位,此时,将通过调用HTML5所支持的接口函数获取当前所在位置,监听移动终端的旋转动作以获取磁北角。其中,该接口函数可为getCurrentPosit1n,旋转动作的监听可通过HTML5deviceorientat1n事件实现。
[0048]步骤S130,根据当前所在位置获取对应的地理数据。
[0049]本实施例中,触发运行本方法,并定位得到当前所在位置和磁北角之后,将获取当前位置所对应的某一区域的地理数据。例如,根据当前所在位置可知用户当前位于某一景区,则获取该景区所对应的地理数据。
[0050]进一步的,在定位得到当前所在位置后,将进行查找,以得到涵盖了当前所在位置的区域所对应的地理数据。
[0051]获取的地理数据可以是从后台的服务器加载得到的,也可以是本地所缓存的地理数据。
[0052]具体的,若根据当前所在位置首次获取地理数据,将向后台的服务器发起数据加载请求,后台的服务器根据接收到的当前所在位置查找得到涵盖了当前所在位置的地理数据,并返回,此时移动终端将接收到后台的服务器根据数据加载请求返回的地理数据。后续若再次需要根据相同的当前所在位置获取地理数据则不再从后台的服务器下载,直接从本地缓存获取即可。
[0053]在一个实施例中,上述地理数据是以文本形式存在的,以保证在地理数据的传输耗费较低的成本,降低了对网络环境的依赖程度,例如,在无wifi,网络较差的情况下,用户不需要耗费较多的流量即可从后台的服务器加载地理数据,也保证了较快的加载速度。
[0054]进一步的,地理数据包括了一定区域中所有地点的经纬度信息、地名和标识等,具体可为标记点和标记点的位置,其中,区域中的地点将以标记点的形式存在,标记点的位置可为经纬度信息。例如,某一景区的地理数据包括了景点的名称、景点的经纬度信息和标识。
[0055]步骤S150,在地理数据中根据磁北角提取视野的标记点和标记点的位置。
[0056]本实施例中,根据定位得到的磁北角确定当前的视野,进而从地理数据中提取出处于视野内的标记点和标记点的位置。例如,磁北角所对应的视野可以是以当前位置为原点向外辐射所形成的一个角度,由当前位置按照磁北角所形成的射线将是形成的角度的角平分线。
[0057]步骤S170,处理提取的标记点和标记点的位置,以将标记点显示于屏幕中。
[0058]本实施例中,将提取的标记点映射到屏幕所在的平面中,并在该平面进行绘图,以在屏幕中还原视野中标记点的分布,以便于用户查看。
[0059]如图2所示,在一个实施例中,上述步骤S150包括:
[0060]步骤S151,根据地理数据中标记点的位置得到标记点对应的方位角。
[0061]本实施例中,用户的当前所在位置和标记点的位置均应用经纬度信息表示。方位角是标记点与观察点的连线与正北方向的夹角(顺时针),其中,观察点即为用户的当前所在位置。因此,以用户的当前所在位置为原点,以正北方向为纵坐标的正方向建立坐标系,标记点对应的方位角是由纵坐标的正半轴顺时针旋转到标记点和原点之间的连线时所跨过的角度,如图3所示,对于标记点A而言,角NOA即为标记点A的方位角,角NOB为标记点B的方位角。
[0062]步骤S153,根据磁北角得到所处的角度状态,通过该角度状态所对应的角度条件和方位角判断标记点是否位于磁北角对应的视野,若是,则进入步骤S155,若否,则结束。
[0063]本实施例中,预先设定了若干个角度状态,根据磁北角所在的角度状态即可获知何种方位角将处于视野中。
[0064]具体的,如图4所示,在以用户的当前所在位置为原点,以正北方向为纵坐标的正方向所建立的坐标系中,磁北角即为罗盘指向角,是由轴ON逆时针旋转至当前移动终端的指向所得到的角,当前移动终端指向正北方向时,磁北角等于O度,随着移动终端的旋转,磁北角可由O度变化至360度。
[0065]请参阅图5,V表示视野P1OP,所对应的角度大小,例如,可将V定义为90度。若磁北角NOP e [O, v/2),以O为起点画射线,任何落在视野P1Oh的射线都将是移动终端当前所指向的视野内的射线,该射线上的任意一点都可作为视野内的点。
[0066]基于上述原理,以O作为用户的当前所在位置,向标记点画射线,若此条射线落在视野P1OPr内则认为该标记点在移动终端指向的视野内,如射线0A。
[0067]因此,将得到第一角度状态:若磁北角NOP e [O, v/2),射线OA落在NOPi内,即NOA e [360-V/2-N0P, 360),则标记点A在视野内;当射线OA落在NOPr内,即NOA e [O, v/2-NOP),则标记点A也在视野内。
[0068]相应的,将得到如图6所示的第二角度状态和如图7所示的第三角度状态,其中,分别为:
[0069]第二角度状态:若磁北角NOP e [v/2, 360-V/2),射线OA落在PrOP1内,即NOA e [360-N0P-v/2, 360-N0P+v/2),则标记点 A 在视野内。
[0070]第三角度状态:若磁北角NOP e [360-V/2, 360),射线OA落在P1ON内,即NOA e [360- (ν/2_360_Ν0Ρ),360),则标记点A在视野内;若射线OA落在NOPr内,即NOA e [O, v/2+360-N0P),则标记点A也在视野内。
[0071]进而根据角度状态得到相应的角度条件,S卩,第一角度状态所对应的角度条件为NOA e [360-v/2-N0P, 360)和NOA e [O, v/2-NOP);第二角度状态所对应的角度条件为NOA e [360-N0P-v/2, 360-N0P+v/2);第三角度状态所对应的角度条件为NOA e [360- (v/2-360-N0P),360)和 NOA e [O, v/2+360-N0P)。
[0072]根据磁北角得到所处的角度状态,进而得到该角度状态所对应的角度条件,判断标记点的方位角是否处于得到的角度条件中,若是,则说明该标记点位于视野内。
[0073]步骤S155,提取标记点和标记点的位置。
[0074]本实施例中,从地理数据中提取判定得到的位于视野中的标记点和标记点的位置。
[0075]如图8所示,在一个实施例中,上述步骤S170包括:
[0076]步骤S171,将当前所在位置对应于屏幕中预设的固定点,并根据标记点的位置、当前所在位置和地理数据中标记点之间的最大宽度将提取的标记点映射到屏幕所在平面得到标记点对应的第一偏移值。
[0077]本实施例中,将用户当前所在位置设置于屏幕中的某一固定点进行视野内标记点的展示,视野中的标记点都将是用户前方的地点所对应的标记点。优选的,固定点为屏幕底线的中间位置。
[0078]具体的,相对固定点计算标记点映射到屏幕中的位置,即第一偏移值。由于屏幕为方形平面,因此第一偏移值包括第一横向偏移值和第一纵向偏移值。
[0079]利用当前所在位置和标记点对应的方位角、屏幕宽度计算得到第一横向偏移值,利用当前所在位置、标记点对应的方位角和屏幕高度计算得到第一纵向偏移值。
[0080]进一步的,首先计算当前所在位置和标记点的位置之间的地理距离gdistance(米),获取视野内标记点之间的最大宽度gwidth (米),即所有标记点分布的最大地理宽度,以及屏幕的宽度mwidth (px)、屏幕的高度mheight (px),则地理距离映射到屏幕上的所对应的固定点至标记点所对应的映射点之间的像素距离为:
[0081]mdistance= (mwidth 像素 /gwidth 米)氺gdistance 米
[0082]从而根据标记点对应的方位角和计算得到的像素距离进行第一横向偏移值left和第一纵向偏移值top的计算,此时为方便计算,逆转方位角,则方位角N0A=360-N0A,根据方位角所在的方位状态进行计算,其中:
[0083]如图9所示,方位状态I, NOA e [O, 90)时,
[0084]left=(mwidth/2)_mdistance*sin (NOA);
[0085]top=mheight_mdistance*cos(NOA)。
[0086]如图10所示,方位状态2,NOA e [90, 180)时,
[0087]left=(mwidth/2)+mdistance*sin(180-N0A);
[0088]top=mheight_mdistance*cos(180-N0A)。
[0089]如图11所示,方位状态3,NOA e [180, 270)时,
[0090]left=(mwidth/2)_mdistance*sin(N0A-180);
[0091]top=mheight_mdistance*cos(NOA-180)。
[0092]如图12所示,方位状态4,NOA e [270, 360)时,
[0093]left=(mwidth/2)+mdistance*sin(360-N0A);
[0094]top=mheight_mdistance*cos(360-N0A)。
[0095]步骤S173,按照标记点对应的第一偏移值进行绘图,并显示于屏幕中。
[0096]本实施例中,根据计算得到的第一横向偏移值和第一纵向偏移值进行描点,以使得视野内的标记点均进行了绘制,以便于显示于屏幕中,使得用户通过屏幕即可查看当前视野内的所有标记点。
[0097]此外,还可在屏幕中显示标记点的线路,地理距离等信息,以使得用户所查找得到的标记点相关信息更为丰富。
[0098]如图13所示,在一个实施例中,上述步骤S130之前,该方法还包括:
[0099]步骤S210,将标记点映射到设定平面。
[0100]本实施例中,还将在屏幕中的某一区域向用户展示当前所在位置周围的地点,该区域即为设定平面。
[0101]在获取得到当前所在位置对应的地理数据之后,将地理数据中的标记点映射到设定平面,以通过设定平面向用户还原当前所在环境。
[0102]步骤S230,根据标记点在设定平面的映射在屏幕显示标记点在设定平面的分布。
[0103]本实施例中,将标记点映射到设定平面之后,按照标记点在设定平面的映射对设定平面进行描点,进而将体现了标记点分布的设定平面渲染显示于屏幕中。
[0104]对用户当前所在位置周围的地点所进行的展示可通过列表的形式或电子地图的形式实现,但是,在优选的实施例中,对用户当前所在位置周围的地点所进行的展示将通过雷达缩略图的形式实现。
[0105]通过列表的形式将只能在数值大小上展示标记点与用户之间的地理距离和标记点的方位角,而无法形象地进行展示;通过电子地图的形式将存在着实现成本高,和下载该电子地图所耗费的流量高的缺陷,因此将选用雷达缩略图的形式进行用户当前所在位置周围的地点的展示。
[0106]如图14所示,在一个实施例中,上述步骤S210包括:
[0107]步骤S211,获取标记点和当前所在位置之间的地理距离,并将地理距离转换为标记点在设定平面中的像素距离。
[0108]本实施例中,获取标记点到当前所在位置的地理距离gdistance、地理数据中标记点之间的最大宽度gwidth,即地理数据中所有标记点所构成矩形的最大地理宽度gwidth以及屏幕的宽度mwidth,进而根据gdistance、gwidth和mwidth进行地理距离的换算得到标记点在设定平面中的像素距离,即如图15所示的0A,详细公式如下:
[0109]OA= (mwidth 像素 /gwidth 米)*gdistance 米
[0110]其中,A点为标记点在设定平面的映射,O点为用户当前所在位置,也是坐标系的原点。
[0111]步骤S213,在设定平面以正北方向为纵坐标的正方向,设定平面的中心为原点的坐标系中,获取设定平面和屏幕之间的外边距。
[0112]本实施例中,将用户当前所在位置映射到设定平面的中心建立坐标系,其中,正北方向为纵坐标的正方向,在建立的坐标系中获取设定平面的边界相对于屏幕中相邻的两条边界的外边距,即获取的外边距包括了横向外边距和纵向外边距,如图15所示,设定平面1510为圆形,屏幕1530所在的平面与设定平面1510之间的外边距包括了横向外边距tx和纵向外边距ty。
[0113]步骤S215,将当前所在位置映射到坐标系的原点,通过外边距、像素距离和标记点的位置计算得到标记点映射到设定平面的第二偏移值。
[0114]本实施例中,在建立的坐标系中,通过外边距、像素距离和标记点的位置进行几何变换以计算得到标记点映射到设定平面的第二偏移值,该第二偏移值是标记点相对于屏幕中相邻的两条边界的距离,包括第二横向偏移值和第二纵向偏移值。
[0115]请结合参阅图15,点A为标记点到坐标系中的映射,r为圆形的设定平面所对应的半径,tx为横向外边距,ty为纵向外边距。为在设定平面中描绘标记点,将首先根据标记点的位置得到对应的方位角,并逆转方位角,以便于计算,即方位角N0A=360-N0A,则任一标记点的第二横向偏移值left和第二纵向偏移值top可由如下公式计算得到:
[0116]left=r-0A*sin(NOA)+tx ;
[0117]top=r-0A*cos(NOA)+ty。
[0118]其中,OA为像素距离。
[0119]在一个实施例中,上述设定平面为圆形,上述步骤S215之后,该步骤S210还包括:
[0120]对映射到设定平面之外的标记点,根据设定平面的半径、标记点的位置和外边距计算得到对应的第二偏移修正值。
[0121]本实施例中,并非地理数据中所有的标记点均能够映射到设定平面之内,因此,对于映射到设定平面之外的标记点,将对其第二偏移值进行修正,以使得映射到设定平面之外的标记点均被展示于设定平面边缘,使得用户在设定平面上也能够查看到该标记点,以获知其所在的方位。
[0122]具体的,映射到设定平面之外的标记点的修正可通过如下公式实现:
[0123]eleft=r-r*sin(NOA)+tx ;
[0124]etop=r-r*cos(NOA)+ty。
[0125]其中,eleft为第二横向偏移修正值,etop为第二纵向偏移修正值,NOA为一次逆转后的方位角。
[0126]如图16所示,在一个实施例中,上述步骤S230包括:
[0127]步骤S231,获取映射到设定平面之内的标记点对应的第二偏移值。
[0128]本实施例中,对设定平面之内的标记点获取第二横向偏移值和第二纵向偏移值。
[0129]步骤S233,按照第二偏移值在设定平面描点。
[0130]本实施例中,在设定平面中按照第二横向偏移值和第二纵向偏移值进行绘图,以得到设定平面之内所有标记点的雷达缩略图,进而向用户展示一定范围之内所有标记点的分布。
[0131 ] 步骤S235,显示描点得到的雷达缩略图。
[0132]如图17所示,在一个实施例中,上述步骤S235之前还包括:
[0133]步骤S237,根据映射到设定平面之外的标记点的位置确定标记点映射到坐标系所对应的象限。
[0134]本实施例中,为使得映射到设定平面之外的标记点不漂移到设定平面之外,对于映射到设定平面之外的标记点,将根据其位置获取对应的方位角得到标记点的映射在坐标系的象限。
[0135]步骤S238,按照象限对比映射点的第二偏移值和第二偏移修正值得到实际偏移值。
[0136]本实施例中,按方位角NOA所在象限对第二偏移值和第二偏移修正值进行对比以得到实际偏移值,相应的,该实际偏移值包括横向实际偏移值和纵向实际偏移值,具体的:
[0137]当N0A/90等于O时,实际横向偏移值left=max(left, eleft),实际纵向偏移值top=max(top, etop)。
[0138]当N0A/90等于I时,实际横向偏移值left=max(left, eleft),实际纵向偏移值top=min (top, etop)。
[0139]当N0A/90等于2时,实际横向偏移值left=min(left, eleft),实际纵向偏移值top=min (top, etop)。
[0140]当N0A/90等于3时,实际横向偏移值left=min(left, eleft),实际纵向偏移值top=max(top, etop)。
[0141]步骤S239,按照实际偏移值在设定平面描点。
[0142]本实施例中,对比得到标记点的实际偏移值之后,即可按照实际偏移值在设定平面中渲染描点,以得到大致显示映射到设定平面之外的标记点的分布的雷达缩略图。
[0143]上述实现位置服务的方法,通过雷达缩略图实现一定区域内的全视角标记点分布和方位的展示,进而使得用户通过雷达缩略图掌控该区域内的所有地理位置信息,以实现了该区域内的地理位置服务。
[0144]上述实现位置服务的方法中,如图18所示,通过对地理数据的标记点进行两次不同方式的映射而分别得到当前用户视野内的标记点分布和展示全视角标记点分布的雷达缩略图,进而还可获取相应的位置服务信息,以标记于当前用户视野内的标记点分布中,也可标记于雷达缩略图中,为用户提供更为丰富的信息。
[0145]由于上述实现位置服务的方法可通过HTML5实现,因此不需要安装额外的插件即可实现,大大地降低了系统资源的耗费。
[0146]上述实现位置服务的方法中,对屏幕所在平面绘制视野中标记点的分布或者雷达缩略图的绘制均是通过模拟线程实现的。具体的,上述实现位置服务的方法可通过HTML5中的JS (Javascript)语言实现,由于JS语言本质上并不支持多进程,因此,将通过一个单独的进程执行上述实现位置服务的方法,并通过调用setTimeout触发标记点的绘制功能,setTimeout即称为是模拟线程,进而使得标记点的绘制看似与当前的进程同时执行。
[0147]如图19所示,在一个实施例中,一种实现位置服务的装置,包括定位模块110、数据获取模块130、提取模块150和处理模块170。
[0148]定位模块110,用于定位当前所在位置和磁北角。
[0149]本实施例中,定位模块110对用户进行定位以得到当前所在位置和磁北角,其中,当前所在位置可为用户当前所在的经纬度信息;磁北角即为当前偏离正北方向的角度,即罗盘指向角。
[0150]进一步的,定位模块110将依赖于本方法所在载体,例如移动终端的硬件,通过移动终端中的GPS和罗盘进行定位,此时,定位模块110将通过调用HTML5所支持的接口函数获取当前所在位置,监听移动终端的旋转动作以获取磁北角。其中,该接口函数可为getCurrentPosit1n,旋转动作的监听可通过HTML5deviceorientat1n事件实现。
[0151]数据获取模块130,用于根据当前所在位置获取对应的地理数据。
[0152]本实施例中,触发运行本方法,并定位得到当前所在位置和磁北角之后,数据获取模块130将获取当前位置所对应的某一区域的地理数据。例如,数据获取模块130根据当前所在位置可知用户当前位于某一景区,则获取该景区所对应的地理数据。
[0153]进一步的,在定位得到当前所在位置后,数据获取模块130将进行查找,以得到涵盖了当前所在位置的区域所对应的地理数据。
[0154]数据获取模块130获取的地理数据可以是从后台的服务器加载得到的,也可以是本地所缓存的地理数据。
[0155]具体的,若根据当前所在位置首次获取地理数据,数据获取模块130将向后台的服务器发起数据加载请求,后台的服务器根据接收到的当前所在位置查找得到涵盖了当前所在位置的地理数据,并返回,此时移动终端中的数据获取模块130将接收到后台的服务器根据数据加载请求返回的地理数据。后续若再次需要根据相同的当前所在位置获取地理数据则不再从后台的服务器下载,数据获取模块130直接从本地缓存获取即可。
[0156]在一个实施例中,上述地理数据是以文本形式存在的,以保证在地理数据的传输耗费较低的成本,降低了对网络环境的依赖程度,例如,在无wifi,网络较差的情况下,用户不需要耗费较多的流量即可从后台的服务器加载地理数据,也保证了较快的加载速度。
[0157]进一步的,地理数据包括了一定区域中所有地点的经纬度信息、地名和标识等,具体可为标记点和标记点的位置,其中,区域中的地点将以标记点的形式存在,标记点的位置可为经纬度信息。例如,某一景区的地理数据包括了景点的名称、景点的经纬度信息和标识。
[0158]提取模块150,用于在地理数据中根据磁北角提取视野的标记点和标记点的位置。
[0159]本实施例中,提取模块150根据定位得到的磁北角确定当前的视野,进而从地理数据中提取出处于视野内的标记点和标记点的位置。例如,磁北角所对应的视野可以是以当前位置为原点向外辐射所形成的一个角度,由当前位置按照磁北角所形成的射线将是形成的角度的角平分线。
[0160]处理模块170,用于处理提取的标记点和标记点的位置,以将标记点显示于屏幕中。
[0161]本实施例中,处理模块170将提取的标记点映射到屏幕所在的平面中,并在该平面进行绘图,以在屏幕中还原视野中标记点的分布,以便于用户查看。
[0162]如图20所示,在一个实施例中,上述提取模块150包括方位角获取单元151、标记点判定单元153和标记点提取单元155。
[0163]方位角获取单元151,用于根据地理数据中标记点的位置得到标记点对应的方位角。
[0164]本实施例中,用户的当前所在位置和标记点的位置均应用经纬度信息表示。方位角是标记点与观察点的连线与正北方向的夹角(顺时针),其中,观察点即为用户的当前所在位置。因此,以用户的当前所在位置为原点,以正北方向为纵坐标的正方向建立坐标系,标记点对应的方位角是由纵坐标的正半轴顺时针旋转到标记点和原点之间的连线时所跨过的角。
[0165]标记点判定单元153,用于根据磁北角得到所处的角度状态,通过角度状态所对应的角度条件和方位角判断标记点是否位于磁北角对应的视野,若是,则通知标记点提取单元155,若否,则停止执行。
[0166]本实施例中,预先设定了若干个角度状态,标记点判定单元153根据磁北角所在的角度状态即可获知何种方位角将处于视野中。
[0167]具体的,在以用户的当前所在位置为原点,以正北方向为纵坐标的正方向所建立的坐标系中,磁北角即为罗盘指向角,当前移动终端指向正北方向时,磁北角等于O度,随着移动终端的旋转,磁北角可由O度变化至360度。
[0168]请参阅图5,V表示视野P1OPr所对应的角度大小,例如,可将V定义为90度。若磁北角NOP e [O, v/2),以O为起点画射线,任何落在视野P1Oh的射线都将是移动终端当前所指向的视野内的射线,该射线上的任意一点都可作为视野内的点。
[0169]基于上述原理,以O作为用户的当前所在位置,向标记点画射线,若此条射线落在视野P1OPr内则认为该标记点在移动终端指向的视野内,如射线0A。
[0170]因此,将得到第一角度状态:若磁北角NOP e [O, v/2),射线OA落在NOPi内,即NOA e [360-v/2-N0P, 360),则标记点A在视野内;当射线OA落在NOPr内,即NOA e [O, v/2-NOP),则标记点A也在视野内。
[0171]相应的,将得到如图6所示的第二角度状态和如图7所示的第三角度状态,其中,分别为:
[0172]第二角度状态:若磁北角NOP e [v/2, 360-V/2),射线OA落在PrOP1内,即NOA e [360-N0P-v/2, 360-N0P+v/2),则标记点 A 在视野内。
[0173]第三角度状态:若磁北角NOP e [360-V/2, 360),射线OA落在P1ON内,即NOA e [360- (ν/2_360_Ν0Ρ),360),则标记点A在视野内;若射线OA落在NOPr内,即NOA e [O, v/2+360-N0P),则标记点A也在视野内。
[0174]进而根据角度状态得到相应的角度条件,S卩,第一角度状态所对应的角度条件为NOA e [360-v/2-N0P, 360)和NOA e [O, v/2-NOP);第二角度状态所对应的角度条件为NOA e [360-N0P-v/2, 360-N0P+v/2);第三角度状态所对应的角度条件为NOA e [360-(v/2-360-N0P),360)和 NOA e [O, v/2+360-N0P)。
[0175]标记点判定单元153根据磁北角得到所处的角度状态,进而得到该角度状态所对应的角度条件,判断标记点的方位角是否处于得到的角度条件中,若是,则说明该标记点位于视野内。
[0176]标记点提取单元155,用于提取标记点和标记点的位置。
[0177]本实施例中,标记点提取单元155从地理数据中提取判定得到的位于视野中的标记点和标记点的位置。
[0178]如图21所示,在一个实施例中,上述处理模块170包括第一映射单元171和绘图单元173。
[0179]第一映射单元171,用于将当前所在位置对应于屏幕中预设的固定点,并根据标记点的位置、当前所在位置和地理数据中标记点之间的最大宽度将提取的标记点映射到屏幕所在平面得到标记点对应的第一偏移值。
[0180]本实施例中,第一映射单元171将用户当前所在位置设置于屏幕中的某一固定点进行视野内标记点的展示,视野中的标记点都将是用户前方的地点所对应的标记点。优选的,固定点为屏幕底线的中间位置。
[0181]具体的,第一映射单元171相对固定点计算标记点映射到屏幕中的位置,即第一偏移值。由于屏幕为方形平面,因此第一偏移值包括第一横向偏移值和第一纵向偏移值。
[0182]第一映射单元171利用当前所在位置和标记点对应的方位角、屏幕宽度计算得到第一横向偏移值,利用当前所在位置、标记点对应的方位角和屏幕高度计算得到第一纵向偏移值。
[0183]进一步的,第一映射单元171首先计算当前所在位置和标记点的位置之间的地理距离gdistance (米),获取视野内标记点之间的最大宽度gwidth (米),即所有标记点分布的最大地理宽度,以及屏幕的宽度mwidth (px)、屏幕的高度mheight (px),则地理距离映射到屏幕上的所对应的固定点至标记点所对应的映射点之间的像素距离为:
[0184]mdistance= (mwidth 像素 /gwidth 米)氺gdistance 米
[0185]从而第一映射单元171根据标记点对应的方位角和计算得到的像素距离进行第一横向偏移值left和第一纵向偏移值top的计算,此时为方便计算,逆转方位角,则方位角N0A=360-N0A,根据方位角所在的方位状态进行计算,其中:
[0186]如图9所示,方位状态I,NOA e [O, 90)时,
[0187]left=(mwidth/2)_mdistance*sin (NOA);
[0188]top=mheight_mdistance*cos(NOA)。
[0189]如图10所示,方位状态2,NOA e [90, 180)时,
[0190]left=(mwidth/2)+mdistance*sin(180-N0A);
[0191]top=mheight_mdistance*cos(180-N0A)。
[0192]如图11所示,方位状态3,NOA e [180,270)时,
[0193]left=(mwidth/2)_mdistance*sin(N0A-180);
[0194]top=mheight_mdistance*cos(NOA-180)。
[0195]如图12所示,方位状态4,NOA e [270, 360)时,
[0196]left=(mwidth/2)+mdistance*sin(360-N0A);
[0197]top=mheight_mdistance*cos(360-N0A)。
[0198]绘图单元173,用于按照标记点对应的第一偏移值进行绘图,并显示于屏幕中。
[0199]本实施例中,绘图单元173根据计算得到的第一横向偏移值和第一纵向偏移值进行描点,以使得视野内的标记点均进行了绘制,以便于显示于屏幕中,使得用户通过屏幕即可查看当前视野内的所有标记点。
[0200]此外,绘图单元173还可在屏幕中显示标记点的线路,地理距离等信息,以使得用户所查找得到的标记点相关信息更为丰富。
[0201]如图22所示,在一个实施例中,上述装置还包括第二映射模块210和标记点分布模块230。
[0202]第二映射模块210,用于将标记点映射到设定平面。
[0203]本实施例中,第二映射模块210还将在屏幕中的某一区域向用户展示当前所在位置周围的地点,该区域即为设定平面。
[0204]第二映射模块210在获取得到当前所在位置对应的地理数据之后,将地理数据中的标记点映射到设定平面,以通过设定平面向用户还原当前所在环境。
[0205]标记点分布模块230,用于根据标记点在设定平面的映射在屏幕显示标记点在设定平面的分布。
[0206]本实施例中,将标记点映射到设定平面之后,标记点分布模块230按照标记点在设定平面的映射对设定平面进行描点,进而将体现了标记点分布的设定平面渲染显示于屏幕中。
[0207]标记点分布模块230对用户当前所在位置周围的地点所进行的展示可通过列表的形式或电子地图的形式实现,但是,在优选的实施例中,对用户当前所在位置周围的地点所进行的展示将通过雷达缩略图的形式实现。
[0208]通过列表的形式将只能在数值大小上展示标记点与用户之间的地理距离和标记点的方位角,而无法形象地进行展示;通过电子地图的形式将存在着实现成本高,和下载该电子地图所耗费的流量高的缺陷,因此将选用雷达缩略图的形式进行用户当前所在位置周围的地点的展示。
[0209]如图23所示,在一个实施例中,上述第二映射模块210包括距离处理单元211、外边距获取单元213和偏移值计算单元215。
[0210]距离处理单元211,用于获取标记点和当前所在位置之间的地理距离,并将地理距离转换为标记点在设定平面中的像素距离。
[0211]本实施例中,距离处理单元211获取标记点到当前所在位置的地理距离gdistance、地理数据中标记点之间的最大宽度gwidth,即地理数据中所有标记点所构成矩形的最大地理宽度gwidth以及屏幕的宽度mwidth,进而根据gdistance、gwidth和mwidth进行地理距离的换算得到标记点在设定平面中的像素距离,即如图15所示的0A,详细公式如下:
[0212]OA= (mwidth 像素 /gwidth 米)*gdistance 米
[0213]其中,A点为标记点在设定平面的映射,O点为用户当前所在位置,也是坐标系的原点。
[0214]外边距获取单元213,用于在设定平面以正北方向为纵坐标的正方向,设定平面的中心为原点的坐标系中,获取设定平面和屏幕之间的外边距。
[0215]本实施例中,外边距获取单元213将用户当前所在位置映射到设定平面的中心建立坐标系,其中,正北方向为纵坐标的正方向,在建立的坐标系中获取设定平面的边界相对于屏幕中相邻的两条边界的外边距,即获取的外边距包括了横向外边距和纵向外边距,如图15所示,设定平面1510为圆形,屏幕1530所在的平面与设定平面1510之间的外边距包括了横向外边距tx和纵向外边距ty。
[0216]偏移值计算单元215,用于将当前所在位置映射到坐标系的原点,通过外边距、像素距离和标记点的位置计算得到标记点映射到设定平面的第二偏移值。
[0217]本实施例中,在建立的坐标系中,偏移值计算单元215通过外边距、像素距离和标记点的位置进行几何变换以计算得到标记点映射到设定平面的第二偏移值,该第二偏移值是标记点相对于屏幕中相邻的两条边界的距离,包括第二横向偏移值和第二纵向偏移值。
[0218]请结合参阅图15,点A为标记点到坐标系中的映射,r为圆形的设定平面所对应的半径,tx为横向外边距,ty为纵向外边距。为在设定平面中描绘标记点,偏移值计算单元215将首先根据标记点的位置得到对应的方位角,并逆转方位角,以便于计算,即方位角N0A=360-N0A,则任一标记点的第二横向偏移值left和第二纵向偏移值top可由如下公式计算得到:
[0219]left=r-0A*sin(NOA)+tx ;
[0220]top=r-0A*cos(NOA)+ty。
[0221]其中,OA为像素距离。
[0222]在一个实施例中,该设定平面为圆形,上述第二映射模块210还用于对映射到设定平面之外的标记点,根据设定平面的半径、标记点的位置和外边距离计算得到对应的第二偏移修正值。
[0223]本实施例中,并非地理数据中所有的标记点均能够映射到设定平面之内,因此,对于映射到设定平面之外的标记点,第二映射模块210将对其第二偏移值进行修正,以使得映射到设定平面之外的标记点均被展示于设定平面边缘,使得用户在设定平面上也能够查看到该标记点,以获知其所在的方位。
[0224]具体的,映射到设定平面之外的标记点的修正可通过如下公式实现:
[0225]eleft=r-r*sin(NOA)+tx ;
[0226]etop=r-r*cos(NOA)+ty。
[0227]其中,eleft为第二横向偏移修正值,etop为第二纵向偏移修正值,NOA为一次逆转后的方位角。
[0228]如图24所示,在一个实施例中,上述标记点分布模块230包括第二偏移值获取单元231、第二偏移值描点单元233和显示单元235。
[0229]第二偏移值获取单元231,用于获取映射到设定平面之内的标记点对应的第二偏移值。
[0230]本实施例中,第二偏移值获取单元231对设定平面之内的标记点获取第二横向偏移值和第二纵向偏移值。
[0231]第二偏移值描点单元233,用于按照第二偏移值在设定平面描点。
[0232]本实施例中,第二偏移值描点单元233在设定平面中按照第二横向偏移值和第二纵向偏移值进行绘图,以得到设定平面之内所有标记点的雷达缩略图,进而向用户展示一定范围之内所有标记点的分布。
[0233]显示单元235,用于显示描点得到的雷达缩略图。
[0234]如图25所示,在一个实施例中,上述标记点分布模块230还包括象限确定单元237、对比单元238和实际偏移值描点单元239。
[0235]象限确定单元237,用于根据映射到设定平面之外的标记点映射到坐标系对应的象限。
[0236]本实施例中,为使得映射到设定平面之外的标记点不漂移到设定平面之外,对于映射到设定平面之外的标记点,象限确定单元237将根据其位置获取对应的方位角得到标记点的映射在坐标系的象限。
[0237]对比单元238,用于按照象限对比映射点的第二偏移值和第二偏移修正值得到实际偏移值。
[0238]本实施例中,对比单元238按方位角NOA所在象限对第二偏移值和第二偏移修正值进行对比以得到实际偏移值,相应的,该实际偏移值包括横向实际偏移值和纵向实际偏移值,具体的:
[0239]当N0A/90等于O时,实际横向偏移值left=max(left, eleft),实际纵向偏移值top=max(top, etop)。
[0240]当N0A/90等于I时,实际横向偏移值left=max(left, eleft),实际纵向偏移值top=min (top, etop)。
[0241]当N0A/90等于2时,实际横向偏移值left=min(left, eleft),实际纵向偏移值top=min (top, etop)。
[0242]当N0A/90等于3时,实际横向偏移值left=min(left, eleft),实际纵向偏移值top=max(top, etop)。
[0243]实际偏移值描点单元239,用于按照实际偏移值在设定平面描点。
[0244]本实施例中,对比得到标记点的实际偏移值之后,实际偏移值描点单元239即可按照实际偏移值在设定平面中渲染描点,以得到大致显示映射到设定平面之外的标记点的分布的雷达缩略图。
[0245]上述实现位置服务的装置,通过雷达缩略图实现一定区域内的全视角标记点分布和方位的展示,进而使得用户通过雷达缩略图掌控该区域内的所有地理位置信息,以实现了该区域内的地理位置服务。
[0246]上述实现位置服务的装置中,通过对地理数据的标记点进行两次不同方式的映射而分别得到当前用户视野内的标记点分布和展示全视角标记点分布的雷达缩略图,进而还可获取相应的位置服务信息,以标记于当前用户视野内的标记点分布中,也可标记于雷达缩略图中,为用户提供更为丰富的信息。
[0247]由于上述实现位置服务的装置可通过HTML5实现,因此不需要安装额外的插件即可实现,大大地降低了系统资源的耗费。
[0248]上述实现位置服务的装置中,对屏幕所在平面绘制视野中标记点的分布或者雷达缩略图的绘制均是通过模拟线程实现的。具体的,上述实现位置服务的方法可通过HTML5中的JS (Javascript)语言实现,由于JS语言本质上并不支持多进程,因此,将通过一个单独的进程执行上述实现位置服务的方法,并通过调用setTimeout触发标记点的绘制功能,setTimeout即称为是模拟线程,进而使得标记点的绘制看似与当前的进程同时执行。
[0249]上述实现位置服务的方法和装置,定位当前所在位置和磁北角,根据当前所在位置获取对应的地理数据,在地理数据中提取处于磁北角对应的角度范围的标记点和标记点的位置,处理提取的标记点和标记点的位置,以将标记点显示于屏幕中,由于用户当前所在的方位进行了定位以得到相应的磁北角,并且显示于屏幕中的标记点也是根据磁北角进行提取得到的,因此,实现了用户当前所在的方位的识别,进而根据用户当前所在的方位进行了准确导航。
[0250]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0251]本发明实施例还提供了另一种实现位置服务的终端,如图25所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA (Personal Digital Assistant,个人数字助理)、P0S (Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
[0252]图26示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图26,手机包括:射频(Rad1 Frequency,RF)电路2610、存储器2620、输入单元2630、显示单元2640、传感器2650、音频电路2660、无线保真(wireless fidelity, WiFi)模块2670、处理器2680、以及电源2690等部件。本领域技术人员可以理解,图26中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布直。
[0253]下面结合图26对手机的各个构成部件进行具体的介绍:
[0254]RF电路2610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器2680处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(LowNoise Amplifier, LNA)、双工器等。此外,RF电路260还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communicat1n, GSM)、通用分组无线服务(GeneralPacket Rad1 Service, GPRS)、码分多址(Code Divis1n Multiple Access, CDMA)、宽带码分多址(Wideband Code Divis1n Multiple Access, WCDMA)、长期演进(Long TermEvolut1n, LTE))、电子邮件、短消息服务(Short Messaging Service, SMS)等。
[0255]存储器2620可用于存储软件程序以及模块,处理器2680通过运行存储在存储器2620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器2620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器2620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0256]输入单元2630可用于接收输入的数字或字符信息,以及产生与手机2600的用户设置以及功能控制有关的键信号输入。具体地,输入单元2630可包括触控面板2631以及其他输入设备2632。触控面板2631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板2631上或在触控面板2631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板2631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器2680,并能接收处理器2680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板2631。除了触控面板2631,输入单元2630还可以包括其他输入设备2632。具体地,其他输入设备2632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0257]显示单元2640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元2640可包括显示面板2641,可选的,可以采用液晶显示器(LiquidCrystal Display, LCD)、有机发光二极管(Organic Light-Emitting D1de, 0LED)等形式来配置显示面板2641。进一步的,触控面板2631可覆盖显示面板2641,当触控面板2631检测到在其上或附近的触摸操作后,传送给处理器2680以确定触摸事件的类型,随后处理器2680根据触摸事件的类型在显示面板2641上提供相应的视觉输出。虽然在图26中,触控面板2631与显示面板2641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板2631与显示面板2641集成而实现手机的输入和输出功倉泛。
[0258]手机2600还可包括至少一种传感器2650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板2641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板2641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用匕如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0259]音频电路2660、扬声器2661,传声器2662可提供用户与手机之间的音频接口。音频电路2660可将接收到的音频数据转换后的电信号,传输到扬声器2661,由扬声器2661转换为声音信号输出;另一方面,传声器2662将收集的声音信号转换为电信号,由音频电路2660接收后转换为音频数据,再将音频数据输出处理器2680处理后,经RF电路2610以发送给比如另一手机,或者将音频数据输出至存储器2620以便进一步处理。
[0260]WiFi属于短距离无线传输技术,手机通过WiFi模块2670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图26示出了 WiFi模块2670,但是可以理解的是,其并不属于手机2600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0261]处理器2680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器2620内的软件程序和/或模块,以及调用存储在存储器2620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器2680可包括一个或多个处理单元;优选的,处理器2680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器2680中。
[0262]手机2600还包括给各个部件供电的电源2690 (比如电池),优选的,电源可以通过电源管理系统与处理器2680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0263]尽管未示出,手机2600还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0264]在本发明实施例中,该终端所包括的处理器2680还具有以下功能:
[0265]定位当前所在位置和磁北角;
[0266]根据当前所在位置获取对应的地理数据;
[0267]在地理数据中根据磁北角提取视野的标记点和标记点的位置;
[0268]处理提取的标记点和标记点的位置,以将标记点显示于屏幕中。
[0269]进一步的,在地理数据中根据磁北角提取视野的标记点和标记点的位置的步骤包括:
[0270]根据地理数据中标记点的位置得到标记点对应的方位角;
[0271]根据磁北角得到所处的角度状态,通过角度状态所对应的角度条件和方位角判断标记点是否位于磁北角对应的视野,若是,则
[0272]提取标记点和标记点的位置。
[0273]进一步的,处理提取的标记点和标记点的位置,以将标记点显示于屏幕中的步骤包括:
[0274]将当前所在位置对应于屏幕中预设的固定点,并根据标记点的位置、当前所在位置和地理数据中标记点之间的最大宽度将提取的标记点映射到屏幕所在平面得到标记点对应的第一偏移值;
[0275]按照标记点对应的第一偏移值进行绘图,并显示于屏幕中。
[0276]进一步的,根据当前所在位置获取对应的地理数据的步骤之后,该方法还包括:
[0277]将标记点映射到设定平面;
[0278]根据标记点在设定平面的映射在屏幕显示标记点在设定平面的分布。
[0279]进一步的,将标记点映射到设定平面的步骤包括:
[0280]获取标记点和当前所在位置之间的地理距离,并将地理距离转换为标记点在设定平面中的像素距离;
[0281]在设定平面以正北方向为纵坐标的正方向,设定平面的中心为原点的坐标系中,获取设定平面和屏幕之间的外边距;
[0282]将当前所在位置映射到坐标系的原点,通过外边距、像素距离和标记点的位置计算得到标记点映射到设定平面的第二偏移值。
[0283]进一步的,该设定平面为圆形,将当前所在位置映射到坐标系的原点,通过外边距、像素距离和标记点的位置计算得到标记点映射到设定平面的第二偏移值的步骤之后,该方法还包括:
[0284]对映射到设定平面之外的标记点,根据设定平面的半径、标记点的位置和外边距计算得到对应的第二偏移修正值。
[0285]进一步的,根据标记点在设定平面的映射在屏幕显示标记点在设定平面的分布的步骤包括:
[0286]获取映射到设定平面之内的标记点对应的第二偏移值;
[0287]按照第二偏移值在设定平面描点;
[0288]显示描点得到的雷达缩略图。
[0289]进一步的,显示描点得到的雷达缩略图的步骤之前还包括:
[0290]根据映射到设定平面之外的标记点的位置确定标记点映射到坐标系所对应的象限;
[0291]按照象限对比映射点的第二偏移值和第二偏移修正值得到实际偏移值;
[0292]按照实际偏移值在设定平面描点。
[0293]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种实现位置服务的方法,包括如下步骤: 定位当前所在位置和磁北角; 根据当前所在位置获取对应的地理数据; 在地理数据中根据所述磁北角提取视野的标记点和所述标记点的位置; 处理所述提取的标记点和所述标记点的位置,以将所述标记点显示于屏幕中。
2.根据权利要求1所述的方法,其特征在于,所述在地理数据中根据所述磁北角提取视野的标记点和所述标记点的位置的步骤包括: 根据地理数据中标记点的位置得到所述标记点对应的方位角; 根据所述磁北角得到所处的角度状态,通过所述角度状态所对应的角度条件和方位角判断所述标记点是否位于所述磁北角对应的视野,若是,则提取所述标记点和所述标记点的位置。
3.根据权利要求1所述的方法,其特征在于,所述处理所述提取的标记点和所述标记点的位置,以将所述标记点显示于屏幕中的步骤包括: 将当前所在位置对应于屏幕中预设的固定点,并根据所述标记点的位置、当前所在位置和地理数据中标记点之间的最大宽度将所述提取的标记点映射到屏幕所在平面得到所述标记点对应的第一偏移值; 按照所述标记点对应的第一偏移值进行绘图,并显示于屏幕中。
4.根据权利要求1所述的方法,其特征在于,所述根据当前所在位置获取对应的地理数据的步骤之后,所述方法还包括: 将所述标记点映射到设定平面; 根据所述标记点在设定平面的映射在屏幕显示所述标记点在设定平面的分布。
5.根据权利要求4所述的方法,其特征在于,所述将所述标记点映射到设定平面的步骤包括: 获取所述标记点和当前所在位置之间的地理距离,并将所述地理距离转换为所述标记点在所述设定平面中的像素距离; 在所述设定平面以正北方向为纵坐标的正方向,设定平面的中心为原点的坐标系中,获取所述设定平面和屏幕之间的外边距; 将当前所在位置映射到所述坐标系的原点,通过所述外边距、像素距离和标记点的位置计算得到所述标记点映射到设定平面的第二偏移值。
6.根据权利要求5所述的方法,其特征在于,所述设定平面为圆形,所述将当前所在位置映射到所述坐标系的原点,通过所述外边距、像素距离和标记点的位置计算得到所述标记点映射到设定平面的第二偏移值的步骤之后,所述方法还包括: 对映射到设定平面之外的标记点,根据所述设定平面的半径、标记点的位置和外边距计算得到对应的第二偏移修正值。
7.根据权利要求6所述的方法,其特征在于,所述根据所述标记点在设定平面的映射在屏幕显示所述标记点在设定平面的分布的步骤包括: 获取映射到所述设定平面之内的标记点对应的第二偏移值; 按照所述第二偏移值在所述设定平面描点; 显示所述描点得到的雷达缩略图。
8.根据权利要求7所述的方法,其特征在于,所述显示所述描点得到的雷达缩略图的步骤之前还包括: 根据映射到设定平面之外的标记点的位置确定所述标记点映射到坐标系所对应的象限; 按照所述象限对比所述映射点的第二偏移值和第二偏移修正值得到实际偏移值; 按照所述实际偏移值在所述设定平面描点。
9.一种实现位置服务的装置,其特征在于,包括: 定位模块,用于定位当前所在位置和磁北角; 数据获取模块,用于根据当前所在位置获取对应的地理数据; 提取模块,用于在地理数据中根据所述磁北角提取视野的标记点和所述标记点的位置; 处理模块,用于处理所述提取的标记点和所述标记点的位置,以将所述标记点显示于屏眷中。
10.根据权利要求9所述的装置,其特征在于,所述提取模块包括: 方位角获取单元,用于根据地理数据中标记点的位置得到所述标记点对应的方位角;标记点判定单元,用于根据所述磁北角得到所处的角度状态,通过所述角度状态所对应的角度条件和方位角判断所述标记点是否位于所述磁北角对应的视野,若是,则通知标记点提取单元; 所述标记点提取单元用于提取所述标记点和所述标记点的位置。
11.根据权利要求9所述的装置,其特征在于,所述处理模块包括: 第一映射单元,用于将当前所在位置对应于屏幕中预设的固定点,并根据所述标记点的位置、当前所在位置和地理数据中标记点之间的最大宽度将所述提取的标记点映射到屏幕所在平面得到所述标记点对应的第一偏移值; 绘图单元,用于按照所述标记点对应的第一偏移值进行绘图,并显示于屏幕中。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括: 第二映射模块,用于将所述标记点映射到设定平面; 标记点分布模块,用于根据所述标记点在设定平面的映射在屏幕显示所述标记点在设定平面的分布。
13.根据权利要求12所述的装置,其特征在于,所述第二映射模块包括: 距离处理单元,用于获取所述标记点和当前所在位置之间的地理距离,并将地理距离转换为所述标记点在所述设定平面中的像素距离。 外边距获取单元,用于在所述设定平面以正北方向为纵坐标的正方向,设定平面的中心为原点的坐标系中,获取所述设定平面和屏幕之间的外边距; 偏移值计算单元,用于将当前所在位置映射到所述坐标系的原点,通过所述外边距、像素距离和标记点的位置计算得到所述标记点映射到设定平面的第二偏移值。
14.根据权利要求13所述的装置,其特征在于,所述设定平面为圆形,所述第二映射模块还用于对映射到设定平面之外的标记点,根据所述设定平面的半径、标记点的位置和外边距计算得到对应的第二偏移修正值。
15.根据权利要求14所述的装置,其特征在于,所述标记点分布模块包括: 第二偏移值获取单元,用于获取映射到所述设定平面之内的标记点对应的第二偏移值; 第二偏移值描点单元,用于按照所述第二偏移值在所述设定平面描点; 显示单元,用于显示所述描点得到的雷达缩略图。
16.根据权利要求15所述的装置,其特征在于,所述标记点分布模块还包括: 象限确定单元,用于根据映射到设定平面之外的标记点映射到坐标系对应的象限; 对比单元,用于按照所述象限对比所述映射点的第二偏移值和第二偏移修正值得到实际偏移值; 实际偏移值描点单元,用于按照所述实际偏移值在所述设定平面描点。
【文档编号】G01C21/30GK104457767SQ201310430953
【公开日】2015年3月25日 申请日期:2013年9月18日 优先权日:2013年9月18日
【发明者】麻华锋, 李娟 , 杨少博, 刘南江, 刘曼, 林瑾, 马晓东, 占方建 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1