一种电子地图空间查询方法及系统的制作方法_2

文档序号:9646618阅读:来源:国知局
的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]图1为本发明实施例电子地图空间查询系统的架构示意图;
[0043]图2为本发明实施例电子地图空间查询方法的流程示意图;
[0044]图3为本发明实施例北京市地区空间查询示意图;
[0045]图4为本发明实施例四叉树建立示意图;
[0046]图5为本发明实施例查询区域分解流程示意图;
[0047]图6为本发明实施例查询区域分解结果示意图;
[0048]图7为本发明实施例电子地图空间查询系统的组成示意图。
【具体实施方式】
[0049]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050]参见图1,为本发明实施例提供的电子地图空间查询系统的架构示意图,该空间查询系统采用了三层架构,分别为表现层(UI),业务逻辑层(BLL)和数据访问层(DAL)。表现层采用了 Flex语言,负责与用户进行业务数据交互,计算分解用户输入的空间图形并展现最终结果,其功能由客户端侧的浏览器实现;业务逻辑层采用了 Java语言,负责对表现层的输入信息进行匹配计算,计算过程中需要从数据访问层查询数据,计算结束后将结果传回表现层显示,其功能由服务器实现;数据访问层采用了 Sybase数据库,存储各Ρ0Ι的地理信息,提供对业务逻辑层的数据访问支持。
[0051]本发明实施例还提供了电子地图空间查询方法,其应用于上述包括客户端和服务器的电子地图空间查询系统。该空间查询方法采用了四叉树算法,基于四叉树算法的空间查询方法的实现包括三部分,分别为:数据初始化、前端算法和后端算法,其中,数据初始化和前端算法由客户端实现,后端算法由服务器实现。前端部分主要由图形界面组成,便于用户输入待查询Ρ0Ι及查询区域;数据初始化即通过四叉树算法将输入的查询区域分解为级联四叉树,再计算每个分解出的四叉树网格在四叉树对应层级中的索引值;后端部分负责数据库的查询操作,即根据前端输入的四叉树网格对应的索引值和数据库中的待查询Ρ0Ι数据进行匹配,并将匹配结果即Ρ0Ι坐标信息返回给前端进行显示。
[0052]参见图2,为本发明实施例提供的电子地图空间查询方法的流程示意图,该方法应用于上述包括客户端和服务器的电子地图空间查询系统,该方法包括:
[0053]步骤201:客户端获取用户输入的待查询Ρ0Ι,获取用户在所述电子地图上选取的查询区域。
[0054]在本发明实施例中,当用户通过客户端侧的浏览器打开电子地图交互界面后,用户可以在该交互界面上的设定位置输入想要查询的Ρ0Ι,还可以在该交互界面显示的电子地图上勾画任意形状的几何图形作为查询区域,或者直接获取服务器侧预先保存的查询区域,比如图3所示的北京市地区空间查询示意图,多边形区域即为查询区域。下面具体介绍以下两种客户端获取查询区域的方式:
[0055]方式一:获取用户通过触屏选取方式在所述电子地图中圈选的查询区域。
[0056]用户勾画(圈选)的形状可以是圆形、矩形、多边形等任意形状,大小没有限制。基于此,本发明空间查询方式可以应用于多种场合,如查询北京市地铁一号线周边的餐饮时,只需要绘制一个条形区域;又如查询某个商业区或社区范围内的ATM机时,只需要绘制该区域的轮廓范围;等等。
[0057]方式二、获取用户从预设的区域选项中选择的区域项并将所述区域项发送至所述服务器,所述服务器侧保存了电子地图中预设区域的轮廓信息;获取所述服务器返回的所述区域项对应的预设区域的轮廓信息,将获取的轮廓信息作为查询区域。
[0058]在本发明实施例中,服务器侧可额外保存预设区域的轮廓信息,比如保存有中国所有省、市、县、区等预设区域的轮廓信息。当用户想要查询这些预设区域内的Ρ0Ι时,既可如方式一那样勾画这些预设区域的轮廓;也可直接从交互界面上的区域选项中选择区域项,客户端会将用户选择的区域项发送至服务器,服务器则将该区域项对应的预设区域的轮廓信息返回给客户端,以便查询任何行政区划内的指定POI,如查询北京市海淀区内的公园,查询辽宁省内的学校等。
[0059]步骤202:所述客户端通过分解所述查询区域构建与所述查询区域对应的四叉树,并确定分解出的每个四叉树网格在所述四叉树对应层级中的索引值。
[0060]在本发明实施例中,通过计算每个四叉树网格在对应层级中的索引值,可以使服务器直接快速地通过查询数据库得到该索引值对应网格内的待查询Ρ0Ι的空间坐标,而不必通过复杂的几何运算计算出Ρ0Ι所属的多边形空间范围。
[0061]在本发明实施例中,四叉树的建立有两个关键参数;一为树的层数,层数的大小直接控制着查询速度与精度之间的关系,层数越大,查询精度越高,查询速度也随之越慢,反之亦然;二为最底层树的网格面积,由于每一层四叉树的网格面积是下一层的四倍,所以该值直接决定了每一层级网格的面积大小,也间接决定着查询精度;通过这两个参数可以唯一确定一棵四叉树。因此,在建立四叉树时,具体根据技术人员预先设置的四叉树层数和四叉树最底层的网格面积建立四叉树。下面介绍建立四叉树的基本原理:
[0062]建立四叉树就是将地理空间递归划分为不同层次的树结构,S卩,将某个地理空间等分成四个相等的子空间,如此递归下去,直至树的层次及网格面积达到四叉树建立要求后停止。例如:参见图4所示的四叉树建立示意图,如果要求四叉树的层数为4层,则四叉树的第一层对应网格0 ;将网格0划分为四个网格,分别为网格1、网格2、网格3和网格4,这四个网格属于四叉树的第二层;再将第二层的每个网格均划分为四个网格,这些被划分后的网格属于四叉树的第三层,比如将第二层的网格1划分为网格5、网格6、网格7和网格8,又比如将第二层的网格4划分为网格9、网格10、网格11和网格12 ;最后将第三层的每个网格均划分为四个网格,比如将第三层的网格12划分为网格13、网格14、网格15和网格16。其中,第四层中每个网格面积为预设的最底层树的网格面积。
[0063]所述查询区域是电子地图的一部分,因此,针对所述查询区域建立一个四叉树,其建立过程就是将所述查询区域分解成一个或多个四叉树网格,这些四叉树网格可以隶属于四叉树的同一层级,也可以隶属于四叉树的不同层级。需要说明是,对于所述查询区域中的每个四叉树网格,是所述四叉树中某一层级中的完整网格。
[0064]用户勾画的外层边界或用户选择的预设区域轮廓是用户输入的查询区域,将输入区域图形转换为矢量多边形,然后把矢量图形分解成空间上连续、以四叉树高层级结点优先的网格结构。具体实现时,根据预设的四叉树层数和四叉树最底层的网格面积,依次从所述查询区域中未被分解的区域中分解出属于对应层级的完整网格,以使所述查询区域由至少一个四叉树网格组成。需要说明的是,根据整个电子地图对应的四叉树结构,服务器侧的数据库中存储了电子地图中每个Ρ0Ι数据与一组四叉树网格索引值之间的对应关系,即每个Ρ0Ι数据在每一四叉树层级中均对应有一个其所在网格的索引值,因此,在对所述查询区域进行网格分解时,所述查询区域中每个网格的划分位置,应与服务器侧存储的网格
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1