一种基于K-means算法的地图聚合方法
【技术领域】
[0001]本发明实施例涉及地图数据处理技术领域,尤其涉及一种基于K-means算法的地图聚合方法。
【背景技术】
[0002]随着互联网地高速发展,数据已经渗透到每行每业中,逐渐成为重要的生产因素,伴随而来的是人类可以进行分析和处理的海量数据,称之为大数据。如今在中型以上的城市如北京、上海等,每天在网络行为中产生的各类数据已经非常庞大。
[0003]在地理信息系统(GeographicInformat1n System,GIS)中,一个兴趣点(Pointof Interest,Ρ0Ι)可以是一栋房子、一个商铺、一个邮筒以及一个公交站等。传统的地理信息采集方法需要地图测绘专业人员采用精密的测绘仪器去获取一个兴趣点的经玮度,然后再标记下来。采集每一个Ρ0Ι是一个非常耗时耗力的工作,同时,Ρ0Ι的数量在一定程度上又代表着整个GIS的价值。每个Ρ0Ι包含四方面信息:名称、类别、经度和玮度,完整的Ρ0Ι信息是丰富导航地图的必备资讯,而及时的Ρ0Ι能提醒用户路况的分支及周边建筑的详细信息,也能方便导航查到用户所需要的各个地方,选择最为便捷和通畅的道路来进行路径规划,因此,导航地图中的Ρ0Ι数量直接影响了导航的质量和效率。
[0004]正是因为在电子地图中有着大量的Ρ0Ι,在使用电子地图时,通常会遇到在某个地区包含成千上万个Ρ0Ι的情况,若同时加载显示在电子地图中,会显得很乱,甚至覆盖地图底图,也会占用大量系统资源,甚至引发浏览器的崩溃或者卡顿,极大地影响用户体验。因此当数据量过大时,通过一种方法对数据进行处理显得非常有必要。
【发明内容】
[0005]本发明提供一种基于K-means算法的地图聚合方法,以实现标志物在地图上显示的更清晰明朗。
[0006]第一方面,本发明实施例提供了一种基于K-means算法的地图聚合方法。该方法包括:
[0007]S1、查询地图上视野范围内的标志物列表;
[0008]S2、根据所述标志物列表创建聚簇列表,提取所述标志物列表中的一个标志物作为当前标志物;
[0009]S3、判断所述当前标志物与所述聚簇列表中的每一个聚簇之间的距离,是否小于预设距离,若是,则将对应的聚簇作为所述当前标志物的目标聚簇,继续执行步骤S4,否则,执行步骤S6 ;
[0010]S4、判断所述当前标志物是否在目标聚簇的网格范围内,如果在,则将所述当前标志物加入到所述目标聚簇的标志物列表中,否则,执行步骤S6 ;
[0011]S5、判断所述标志物列表中是否存在下一个未确定目标聚簇的标志物,若是,则作为当前标志物,并返回执行步骤S3,若否,则执行步骤S7 ;
[0012]S6、以所述当前标志物为聚簇中心,建立新的聚簇,并将该聚簇加入到步骤S2中的聚簇列表中,返回步骤S5 ;
[0013]S7、对聚簇列表中的每一个聚簇应用K-means算法得到每个聚簇的中心点;
[0014]S8、将所述中心点在地图上进行显示。
[0015]进一步地,所述标志物列表中的每一个标志物包括:名称、类别、经度以及玮度信息。
[0016]优选的,根据所述标志物列表创建聚簇列表,包括:从所述标志物列表中选取设定数量的标志物,添加至聚簇列表中。
[0017]示例性地,判断所述当前标志物是否在目标聚簇的网格范围内之前,还包括:根据地图的缩放级别确定所述目标聚簇的网格范围。
[0018]优选的,所述K-means算法中的k设置为1。
[0019]本发明通过对视野范围内的标志物列表先进行聚合分类,使每一个标志物都找到自己的目标聚簇,形成最终的聚簇列表,再对聚簇列表中的每一个聚簇应用K-means算法计算每一个聚簇的中心点,最后将所述中心点显示在地图上,实现了用少量的点来表示地图中的所有点,使地图显示的更清晰、明朗。
【附图说明】
[0020]图1是本发明实施例一中的一种基于K-means算法的地图聚合方法的流程图;
[0021]图2是本发明实施例一中的一种K-means算法的流程图;
[0022]图3是本发明实施例一中的一种地图显不效果不意图一;
[0023]图4是本发明实施例一中的一种地图显示效果示意图二。
【具体实施方式】
[0024]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0025]实施例一
[0026]图1为本发明实施例一提供的一种基于K-means算法的地图聚合方法的流程图。本实施例可适用于电子地图,当地图上的标志物很多的时候,在地图上表示困难的情况,具体包括如下步骤:
[0027]S1、查询地图上视野范围内的标志物列表;
[0028]上述步骤具体可以通过调用地理信息系统中的数据库来得到视野范围内的标志物列表。所述视野范围可以是用户所使用终端的显示界面的大小,也可以是根据用户的请求去确定,例如,用户的搜索请求为“天津市东丽区的农业银行”,所述视野范围即为天津市东丽区。
[0029]S2、根据所述标志物列表创建聚簇列表,提取所述标志物列表中的一个标志物作为当前标志物,继续执行步骤S3 ;
[0030]优选的,根据所述标志物列表创建聚簇列表,包括:从所述标志物列表中选取设定数量的标志物,添加至聚簇列表中。本步骤为初始聚簇列表的创建,选取的设定数量的标志物即为初始的聚簇,所选的每个标志物即为初始聚簇的中心,可以随机选择,或选择排序在前的,具体选择策略不限。然后计算其他的标志物与每个聚簇之间的距离,首先提取所述标志物列表中的一个标志物作为当前标志物,继续执行步骤S3。
[0031]S3、判断所述当前标志物与所述聚簇列表中的每一个聚簇之间的距离,是否小于预设距离,如果是,则将对应的聚簇作为所述当前标志物的目标聚簇,继续执行步骤S4,否则,执行步骤S6;
[0032]示例性地,判断所述当前标志物与所述聚簇列表中的每一个聚簇之间的距离,其实质是计算当前标志物与聚簇列表中的每一个聚簇中心的距离,如果小于预设距离,即认为当前标志物与对应的聚簇的相似性最高,将该聚簇作为当前标志物的目标聚簇。如果不满足小于预设距离,即跳转到步骤S6。
[0033]进一步地,标志物列表中的每一个标志物的信息包括:名称、