一种基于网格空间的POI位置查询索引文件及进行信息查询的方法技术

技术编号:5408844 阅读:956 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及地图信息检索领域,尤其涉及一种基于网格空间索引的POI位置信息查询的文件和方法。本发明专利技术的一种基于网格空间的POI位置查询索引文件及进行信息查询的方法是:在接收到用户的经纬度信息时,先确定其所在的最小的一组网格,判断这组网格中是否含有POI,若没有包含POI,则扩大网格组至更外围的一组网格,直到所述的网格组含有POI,然后从网格组的编号检索出网格所含有的POI的索引号,最后检索得到POI属性信息,从POI的属性信息中的经纬度信息和用户的经纬度信息计算出二者之间的方位和距离并发送给用户。当终端用户发送POI位置信息查询请求服务时,搜索服务器能够高效地发送满足用户查询需求的查询信息,从而为用户提供更好的查询服务。

【技术实现步骤摘要】

本专利技术涉及地图信息检索领域,尤其涉及一种基于网格空间索引的POI位置信息 查询的文件和方法。
技术介绍
POI是“Point of interest”的缩写,可以翻译成兴趣点,用于描述地图中具有价 值的参考点,每个POI皆包含了四个方面的信息,即名称、类别、经度和纬度。目前全国范 围内POI数据已搜集整理并应用。数据检索(data retrieval)是数据处理中最常见的一种运算,检索就是在数据集 合中寻找满足某种条件的数据对象,在计算机中进行数据检索的方法是根据索引结构中的 记录是何种结构组织而确定的。在索引结构中,每一个元素(或记录)被称为对象。在计 算机中进行数据检索的方法是根据索引结构中的记录是何种结构组织而确定的,对于不同 方式组织起来的索引结构,应采用不同的索引方法。反过来,为了提高检索速度,又往往采 用某些特殊的组织方式来组织需要检索的信息。检索是数据处理领域中的一个重要内容, 检索的效率将直接影响到数据处理的效率。同样的一个索引结构,选择正确的、适合结构的 组织形式的检索方法可以极大地提高程序的运行速度。反之,则可能造成检索效率及系统 的运行速度的低下。因此,对于不同方式组织起来的索引结构,应采用不同的索引方法,因而选择适合 的索引结构和相应的检索算法可以极大地提高程序的运行速度。在车辆位置监控应用中,用户经常需要查询离其空间位置最近的POI信息,传统 的技术方法采用计算用户所在城市中所有POI到用户的距离,通过对这些距离的比较,得 出距离最近的POI的位置信息。在POI数据量日益膨胀的当下,该方法要遍历查询并计算 众多的POI信息节点,系统开销比较大、也很耗时。
技术实现思路
针对现有技术的不足之处,本专利技术提出一种基于网格空间索引的POI位置信息查 询的方法,主要是针对现有查询方法的以城市区域为单位进行划分造成的城市区域界限和 检索效率低下而对地理区域进行网格分割,通过设计出更合理的索引文件结构,然后在此 文件结构基础上设计更合理的检索算法来实现的。本专利技术采用的技术方案如下一种基于网格空间的POI位置查询索引文件,其设计和生成的过程至少包括以下 步骤Al,设计网格空间索引文件结构,所述网格空间索引文件结构包括网格空间索引 项文件结构、POI信息数据文件结构,其中所述网格空间索引项文件结构包括基本索引项 文件结构、POI索引号数据文件结构;A2,基于步骤Al所述网格空间索引文件结构,编译POI信息数据生成网格空间索 引文件,其至少包括以下步骤A21,将所有POI所在的一个地理区域划分为网格,设计网格编号规则;A22,设计从上述地理区域中任意一点(Ρ0Ι或用户所在点)的经纬度计算出其所 在网格的网格编号的定位网格算法;A23,为每个POI创建唯一索引号,并以POI的索引号、名称、经纬度为字段建立POI 信息数据文件;A24,根据步骤A23所述的POI信息数据文件中的经纬度、POI索引号和步骤A22所 述的算法,编译得到POI索引号数据文件;A25,由步骤A24所述的POI索引号数据文件编译得到基本索引项文件。其中,步骤Al所述的基本索引项文件结构的每一个节点的包括字段网格编号、 该网格在POI索引号数据文件中的偏移地址、该网格包含的POI个数;所述的POI索引号 数据文件结构的每一个节点字段为网格编号所对应的网格中所有的POI的索引号;所述的 POI信息数据文件结构中的每一个节点包括字段Ρ0Ι索引号、中文名称、经纬度。所述POI信息数据文件结构中的每一个节点还包括字段Ρ0Ι的地址、电话号码。步骤A21所述将所有POI所在的一个地理区域划分为网格,其划分是沿着经度、纬 度的方向按照一定间距进行划分,所述设计网格编号规则,其规则是在所划分网格上按由 下至上,由左至右的顺序,由编号0开始编号。假设整个区域被划分为N行M列,则第η行, 第m列(n、m从1开始编号)的网格的编号即为(m-l)N+n-l。步骤A22所述的定位网格算法,具体是算出该点所在网格的行号、列号,由行号、 列号和网格编号规则得出网格编号。步骤A24包括步骤A241,以POI信息数据文件每一个节点中POI索引号字段中的POI索引号的为主 键,以其所在网格的网格编号为一字段建立正向索引表;A242,将步骤A241所述正向索引表重组为以POI索引号数据文件每一个节点中网 格编号字段中的网格编号为主键,以该编号所属的网格所包含的所有POI的索引号为字段 内容的反向索引表。步骤A25具体是基本索引项文件中每个节点的网格编号,在POI索引号数据文件 中都对应一个节点的网格数据。基本索引项文件中每个网格节点包含POI个数字段的内容 即为在POI索引号数据文件中对应网格节点所含有的POI索引号的个数;基本索引项文件 中每个网格节点的偏移地址字段的内容即为对应网格节点在POI索引号数据文件中的偏 移地址。步骤A24、A25所述的POI索引号数据文件、基本索引项文件的文件节点都按照网 格编号从小到大的顺序存储。一种基于网格空间的POI位置查询索引文件而进行POI位置信息查询的方法,包 括以下步骤Bi,设计从POI的经纬度和用户经纬度计算二者之间距离和方位信息算法;B2,设计由一确定网格或网格组的网格编号计算出包围该网格的外围一层网格的 网格编号的算法;B3,系统初始化并接收用户的经纬度信息;B4,根据步骤B3所述经纬度信息、定位网格算法,计算得到用户所在网格的网格编号;B5,基于步骤B4所得网格编号、步骤B2所述的算法计算得到包围该网格的外围一 层网格的一组网格编号;B6,根据步骤B4所述网格编号、步骤B5所述一组网格编号以及索引文件,判断用 户所在的一组网格是否包含有Ρ0Ι,如果有,则得到用户所在网格和包围该网格的网格组中 所有POI的属性信息,如果没有,则步骤B5为基于当前网格组的网格编号重新计算得到其 外围一层网格的更大网格组的新一组网格编号,返回步骤B5 ;B7,根据步骤B6所述,所有POI属性信息中的经纬度、步骤B3所述用户经纬度信 息、步骤Bl所述的算法,计算得到各个POI到用户的距离并通过比较计算得到距离最近的 POI,计算得到该POI相对于用户的方位信息;B8,整合步骤B7所述的距离最近的POI属性信息中的名称、最小距离信息、方位信 息并发送至用户。其中,步骤Bl所述的算法,其中所述用户和POI之间的距离的计算是以两点之间 的地球球面距离的计算方法为根据;其中所述用户和POI之间的方位信息的计算是以POI 到用户所在点的有向线段为一条斜边,以POI为基准点,水平向右方向的一条线为基准边, 计算基准边逆时针旋转至该斜边的角度来确定。步骤B2所述的算法,是根据网格编号规则得出的。步骤B6所述的判断用户所在的一组网格是否包含有POI是根据基本索引项文件 中相应网格编号节点的该网格包含POI个数的字段内容进行判断。本专利技术采用如上技术方案,提出一种基于网格空间索引的POI位置查询的方法, 主要是针对现有查询方法的以城市区域为单位进行划分造成的城市区域界限和检索效率 低下而对地理区域进行网格分割,通过设计出更合理的索引文件结构,然后在此文件结构 基础上设计更合理的检索算法来实现的。本专利技术的基于网格空间的POI位置查询索引文件 及进本文档来自技高网
...

【技术保护点】
一种基于网格空间的POI位置查询索引文件,其设计和生成的过程至少包括以下步骤:A1,设计网格空间索引文件结构,所述网格空间索引文件结构包括:网格空间索引项文件结构、POI信息数据文件结构,其中所述网格空间索引项文件结构包括:基本索引项文件结构、POI索引号数据文件结构;A2,基于步骤A1所述网格空间索引文件结构,编译POI信息数据生成网格空间索引文件,其至少包括以下步骤:A21,将所有POI所在的一个地理区域划分为网格,设计网格编号规则;A22,设计从上述地理区域中任意一点(POI或用户所在点)的经纬度计算出其所在网格的网格编号的定位网格算法;A23,为每个POI创建唯一索引号,并以POI的索引号、名称、经纬度为字段建立POI信息数据文件;A24,根据步骤A23所述的POI信息数据文件中的经纬度、POI索引号和步骤A22所述的算法,编译得到POI索引号数据文件;A25,由步骤A24所述的POI索引号数据文件编译得到基本索引项文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:季刚程行荣时宜胡涛
申请(专利权)人:厦门雅迅网络股份有限公司
类型:发明
国别省市:92[中国|厦门]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1