电子地图点位聚合方法以及服务端装置与流程

文档序号:11828896阅读:418来源:国知局
电子地图点位聚合方法以及服务端装置与流程

本发明涉及计算机及其软件技术领域,特别地涉及一种电子地图点位聚合方法以及服务端装置。



背景技术:

在电子地图上通常用一个几何点来表示一个真实空间中的地理位置,该几何点叫做地理点位或者点位要素,简称点位。在某个区域上常常包含成千上万个点位。如果将所有的点位直接显示出来,这些点位会覆盖掉地图底图,让用户感觉电子地图非常纷乱。因此需要将多个普通的点位聚合成一个代表性的聚合点位,然后将代表性的聚合点位显示给用户。

目前大部分电子地图厂商均提供了包含点聚合功能的地图应用程序编程接口API(Application Programming Interface),它们基本上都采用了JavaScript语言来实现。由于JavaScript是一种前端语言技术,因此在面临较大数量的点位要素的情况下(例如百万数量级点位要素),聚合算法的计算量十分巨大,会给前端(通常是浏览器)造成很大的负荷,有可能引发前端的崩溃或者卡顿,系统的稳定性较差,严重影响了用户体验。



技术实现要素:

有鉴于此,本发明提供一种稳定可靠、用户体验良好的电子地图点位聚合方法以及服务端装置。

为实现上述目的,根据本发明的一个方面,提供了一种电子地图点位聚合方法。

本发明的电子地图点位聚合方法包括:服务端接收客户端发送的待聚合点坐标集合和聚合算法参数;所述服务端根据所述待聚合点坐标集合和聚合算法参数,采用聚合算法计算得到聚合点坐标集合;所述服务端将所述聚合点坐标集合发送给所述客户端。

可选地,所述聚合算法为基于方格和距离的点位聚合算法。

可选地,所述聚合算法参数包括坐标类型,还包括如下的一项或多项:聚合点显示模式、最大聚合显示级别、最少聚合点数量、外包正方形尺寸。

可选地,所述服务端将所述聚合点坐标集合发送给所述客户端的步骤包括:所述服务端将所述聚合点坐标集合以json格式数据发送给所述客户端。

可选地,在所述服务端根据所述待聚合点坐标集合和聚合算法参数,采用聚合算法计算得到聚合点坐标集合的步骤之后,还包括:分别计算所述聚合点坐标集合中的各个聚合点对应的原始待聚合点数量;若所述聚合点对应的原始待聚合点数量小于所述最少聚合点数量,则从所述聚合点坐标集合中删除该聚合点,并且将该聚合点对应的所有原始待聚合点加入所述聚合点坐标集合中。

根据本发明的另一方面,提供了一种电子地图点位聚合服务端装置。

本发明的电子地图点位聚合服务端装置包括:接收模块,用于接收客户端发送的待聚合点坐标集合和聚合算法参数;计算模块,用于根据所述待聚合点坐标集合和聚合算法参数,采用聚合算法计算得到聚合点坐标集合;发送模块,用于将所述聚合点坐标集合发送给所述客户端。

可选地,所述聚合算法为基于方格和距离的点位聚合算法。

可选地,所述聚合算法参数包括坐标类型,还包括如下的一项或多项:聚合点显示模式、最大聚合显示级别、最少聚合点数量、外包正方形尺寸。

可选地,所述发送模块还用于:将所述聚合点坐标集合以json格式数据发送给所述客户端。

可选地,所述计算模块还用于:分别计算所述聚合点坐标集合中的各个聚合点对应的原始待聚合点数量;若所述聚合点对应的原始待聚合点数量小于所述最少聚合点数量,则从所述聚合点坐标集合中删除该聚合点,并且将该聚合点对应的所有原始待聚合点加入所述聚合点坐标集合中。

根据本发明的技术方案,采用后端运行策略,将点位聚合运算从前台的客户端转移到后台的服务端中,能够提升运算效率及稳定性,从而提升用户体验。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施方式的电子地图点位聚合方法的主要步骤的示意图;

图2是根据本发明实施方式的电子地图点位聚合服务端装置的主要模块的示意图;

图3是根据本发明实施方式的电子地图点位聚合服务端装置的工作过程示意图。

具体实施方式

以下结合附图对本发明的示范性实施方式做出说明,其中包括本发明实施方式的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施方式做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明实施方式的电子地图点位聚合方法的主要步骤的示意图。如图1所示,本发明实施方式的电子地图点位聚合方法可以主要包括如下的步骤A至步骤C。

步骤A:服务端接收客户端发送的待聚合点坐标集合和聚合算法参数。

其中,待聚合点坐标集合的元素就是各个待聚合的电子地图点位的坐标数据。聚合算法参数可以包括坐标类型,还包括如下的一项或多项:聚合点显示模式、最大聚合显示级别、最少聚合点数量、外包正方形尺寸。需要说明的是,聚合算法参数的具体内容可以根据具体的聚合算法类型来灵活设置。例如“外包正方形尺寸”这一参数是适用于基于方格和距离的点位聚合算法的。“外包正方形尺寸”参数的释义如下:以某个点为中心点绘制外包正方形,该外包正方形的大小就是“外包正方形尺寸”。

步骤B:服务端根据待聚合点坐标集合和聚合算法参数,采用聚合算法计算得到聚合点坐标集合。需要说明的是,步骤B中当采用不同类型的聚合算法时,相应地,步骤A中的服务端接收不同类型的聚合算法参数。

具体地,聚合算法可以为基于方格和距离的点位聚合算法计算。基于方格和距离的点位聚合算法技术成熟,能够兼顾计算结果准确率和计算效率。

另外,聚合算法还可以为基于网格的点位聚合算法、基于距离的点位聚合算法或者其他类型的点位聚合算法。具体介绍如下:(a)基于网格的点位聚合算法:将地图划分成预设尺寸的正方形的网格(各个缩放级别对应不同尺寸的网格),然后将落在对应网格中的点聚合到该网格的中心位置,以网格的中心位置点为显示聚合点。(b)基于距离的点位聚合算法:即根据两点间的距离进行聚合,对每个点迭代计算,如果迭代点的距离在某个聚合点的指定阀值范围内,则聚合到该聚合点,否则创建新的聚合点。

步骤C:服务端将聚合点坐标集合发送给客户端。

具体地,服务端可以将聚合点坐标集合以json格式数据发送给客户端。json格式数据具有通用性强等优点。

根据本发明实施方式的电子地图点位聚合方法,在步骤B和步骤C之间,还可以包括如下步骤:分别计算聚合点坐标集合中的各个聚合点对应的原始待聚合点数量;若聚合点对应的原始待聚合点数量小于最少聚合点数量,则从聚合点坐标集合中删除该聚合点,并且将该聚合点对应的所有原始待聚合点加入聚合点坐标集合中。该本发明实施方式的电子地图点位聚合方法中,筛除了聚合原始点位数量不达标的聚合点,优化了聚合处理结果。

本发明实施方式的电子地图点位聚合方法可以基于JAVA语言来实现。选择JAVA语言的主要原因在于:

(1)JAVA语言具有跨平台性和可移植性,在不同平台上只要可以安装JAVA虚拟机即可运行,灵活性高,适用范围广。

(2)JAVA语言可以实现分布式部署,使得原本只能通过一台机器进行的聚合计算分散到多台机器上去计算。这样一方面可以减轻单一服务端的压力,另一方面也提高了运算效率,从而提高了聚合结果展示的响应效率,提升用户体验。

(3)由于JAVA语言不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,从而更好的防止了一些木马的入侵,避免了指针操作中容易产生的错误,因此使用JAVA语言能够使本发明实施方式的点位聚合方法安全稳定地运行。

图2是根据本发明实施方式的电子地图点位聚合服务端装置的主要模块的示意图。如图2所示,本发明实施方式的点位聚合服务端装置20包括:接收模块21、计算模块22和发送模块23。其中:接收模块21用于接收客户端发送的待聚合点坐标集合和聚合算法参数。计算模块22用于根据待聚合点坐标集合和聚合算法参数,采用聚合算法得到聚合点坐标集合。发送模块23用于将聚合点坐标集合发送给客户端。

聚合算法可以为基于方格和距离的点位聚合算法。基于方格和距离的点位聚合算法技术成熟,能够兼顾计算结果准确率和计算效率。另外,聚合算法也可以为基于网格的点位聚合算法、基于距离的点位聚合算法或者其他类型的点位聚合算法。

聚合算法参数可以包括坐标类型,还包括如下的一项或多项:聚合点显示模式、最大聚合显示级别、最少聚合点数量、外包正方形尺寸。

发送模块23还可以用于将聚合点坐标集合以json格式数据发送给客户端。json格式数据具有通用性强等优点。

计算模块22还可以用于:分别计算聚合点坐标集合中的各个聚合点对应的原始待聚合点数量;若聚合点对应的原始待聚合点数量小于最少聚合点数量,则从聚合点坐标集合中删除该聚合点,并且将该聚合点对应的所有原始待聚合点加入聚合点坐标集合中。该本发明实施方式的电子地图点位聚合服务端装置中,筛除了聚合原始点位数量不达标的聚合点,优化了聚合处理结果。

根据本发明的技术方案,采用后端运行策略,将点位聚合运算从前台的客户端转移到后台的服务端中,能够提升运算效率及稳定性,从而提升用户体验。

为使本领域技术人员更好地理解本发明的内容,下面结合具体实施例作详细描述。

图3是根据本发明实施方式的点位聚合服务端装置的工作过程示意图。

首先,该实施方式的点位聚合服务端装置接收一些输入项数据。这些输入项包括待聚合点坐标集合以及一些聚合算法中要用到的参数。这些参数具体介绍如下:

(1)坐标类型(必选参数):目前使用较多电子地图分别为百度地图和谷歌地图,因此支持这两种地图类型的坐标数据计算。

(2)聚合点显示模式(可选参数):是指聚合点最终呈现在页面上时的展示位置模式。可以将聚合点的展示位置选为该聚合点所代表的多个被聚合点的质心,也可以选为该聚合点所代表的多个被聚合点中的第一个被聚合点。默认设置为选第一个被聚合点。

(3)最大聚合显示级别(可选参数):用户可以设置电子地图的最大聚合显示级别,大于该级别就不进行相应的聚合。默认值为18级。

(4)最少聚合点数量(可选参数):用户可以设置最少的聚合点数量,小于该数量的不能进行聚合操作。默认值为2个点。

(5)外包正方形尺寸(可选参数):用户可以设置聚合算法中的外包的方格的尺寸大小。默认值为100×100像素。

然后,基于以上的输入项按照基于方格和距离的点聚合算法进行计算。具体地,即迭代每个点,按照外包正方形尺寸绘制其外包正方形,如果两个点之间的外包正方形不相交,则这两个点分别作为一个聚合点,如果相交,则聚合到之前的聚合点中,如果多个相交,则计算距离,聚合到最近的聚合点上。如此循环,直到所有的待聚合点都遍历完毕。需要说明的是,在计算过程中,点位聚合服务端装置可以先根据输入的坐标类型对不同的坐标类型数据进行转换,然后再进行计算。经过计算可以得到中间项,该中间项即初步聚合结果,包括聚合点坐标集合和聚合点数量集合,其中聚合点坐标集合中的元素与聚合点数量集合中的元素一一对应。例如,聚合点坐标集合A={聚合点1的坐标,聚合点2的坐标,……聚合点n的坐标},聚合点数量集合B={聚合点1所代表的原始点的数量,聚合点2所代表的原始点的数量,……聚合点n所代表的原始点的数量}。然后进一步优化聚合点坐标集合,即:在初步得到的聚合点坐标集合中,如果某个聚合点所代表的原始待聚合点的数量小于最少聚合点数量,那么删除该不达标的聚合点,并且将该聚合点所对应的原始待聚合点以“各个原始点位作为一个集合的元素”加入到聚合点坐标集合中。

最后,输出优化后聚合点坐标集合。需要说明的是,输出项中还可以附带一些其他的属性信息,便于单个点定位时可进行其他的地图操作。

测试证明,本发明实施例的点位聚合服务端能够在百万级以上点位要素聚合的高效稳定运行,兼容性较好,可跨平台使用。它能够降低浏览器负荷,能够加速点聚合结果展示过程,从而提升用户体验,

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1