一种基于GIS信息的人群行为分布的可视化方法与流程

文档序号:14835867发布日期:2018-06-30 12:22阅读:558来源:国知局

本发明涉及数据可视化领域,具体来说,涉及一种基于GIS信息的人群行为分布的可视化方法。



背景技术:

地图由于自带经纬度信息,历来受广大可视化项目的欢迎,但是目前基于地图的可视化方法仍然比较单一,而且由于大数据时代的到来,对大数据的处理和可视化方法提出了更大的挑战。

在基于地图的可视化方法中,一种为用形状大小表示某区域某种数量的大小,如北京人口大于天津人口,则地图上北京的圆的半径大于天津的圆。这种基于地图的方法在小数据量及较稀疏的区域统计时可行,但当统计区域精确到街道等更加精细的区域时,用形状表示数量的大小的方法则会产生困难,形状过小,影响可视化的辨识度,形状过大,由于地图面积有限,形状会相互之间发生覆盖,甚至形成大面积的覆盖情况,使可视化图丢失大量信息。

另一种为点密度图,其中一个点可以表示一个或多个个体,但该图仅表示某一区域密度,并不精确定位到每个个体的经纬度,而是在某计算区域均匀分布;其次由于每个点代表的个体数量相等,当数据量较大且各区域差异较大是,会发生全覆盖或过稀疏情况,降低可视化效果。

针对相关技术中的问题,目前尚未提出有效的解决方案。



技术实现要素:

针对相关技术中的上述技术问题,本发明提出一种基于GIS信息的人群行为分布的可视化方法,能够改善现有可视化方法在展示大数据时可能存在的由于内存不够而加载过慢,数据展示方法选择困难等问题。

为实现上述技术目的,本发明的技术方案是这样实现的:

一种基于GIS信息的人群行为分布的可视化方法,包括以下步骤:

S1 通过logstash对用户访问网站的信息进行标准化,并将标准化后的数据传输到kafka中存储;

S2 利用storm实时分布式框架处理数据,从kafka中读取数据,根据采集到的用户数据,查询对应gis信息,对信息进行处理后存储到hdfs中;

S3 利用hadoop对信息化的数据进行统计分析,将分析得到的数据保存到mysql数据库中;

S4 前端请求后台api接口,读取mysql数据库中的统计数据,并根据具体的页面展示需求,将数据转化为option对象,通过在页面添加所需的option对象对数据进行可视化展示。

进一步的,S2中采集用户的ip地址,根据所述ip地址查询出相对应的gis信息。

进一步的,S3中根据用户的gis信息,访问网页的路径path,统计出不同的数据,将分析后的结果保存到mysql数据库中。

进一步的,分析后的结果包括用户访问网站的信息、用户的gis信息以及用户访问数。

进一步的,S4具体包括:

S41 前端通过js的ajax请求后台api接口,取回保存到mysql中的统计数据,根据可视化页面展示的需求,将取回的数据转为页面展示所需要的option对象;

S42 根据不同的展示数据方式选择相对应的图标option对象,将处理好的数据json对象,添加到相对应图标的option对象中;

S43 调用已经封装好的api方法,将处理好的option对象添加的页面上布局好的div中,进行数据可视化显示。

作为优选,S4进一步包括通过setTimeInterval、setTimeOut,让数据图标进行动态展示。

作为优选,进一步包括:用不同颜色展示不同量级的数据。

本发明的有益效果:采用不同颜色的点代表不同的点密度,解决了图形过大产生的遮盖问题和地区密度两级分化的可视化效果较差的情况,同时采用不同密度的点和地图分层技巧减小内存,避免了由于内存不够而加载过慢的现象,最后基于IP地址获取更加精细的GIS信息,使得人群位置更加精准。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例所述的一种基于GIS信息的人群行为分布的可视化方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,根据本发明实施例所述的一种基于GIS信息的人群行为分布的可视化方法,包括以下步骤:

S1 通过logstash对用户访问网站的信息进行标准化,并将标准化后的数据传输到kafka中存储;

S2 利用storm实时分布式框架处理数据,从kafka中读取数据,根据采集到的用户数据,查询对应gis信息,对信息进行处理后存储到hdfs中;

S3 利用hadoop对信息化的数据进行统计分析,将分析得到的数据保存到mysql数据库中;

S4 前端请求后台api接口,读取mysql数据库中的统计数据,并根据具体的页面展示需求,将数据转化为option对象,通过在页面添加所需的option对象对数据进行可视化展示。

进一步的,S2中采集用户的ip地址,根据所述ip地址查询出相对应的gis信息。

进一步的,S3中根据用户的gis信息,访问网页的路径path,统计出不同的数据,将分析后的结果保存到mysql数据库中。

进一步的,分析后的结果包括用户访问网站的信息、用户的gis信息以及用户访问数。

进一步的,S4具体包括:

S41 前端通过js的ajax请求后台api接口,取回保存到mysql中的统计数据,根据可视化页面展示的需求,将取回的数据转为页面展示所需要的option对象;

S42 根据不同的展示数据方式选择相对应的图标option对象,将处理好的数据json对象,添加到相对应图标的option对象中;

S43 调用已经封装好的api方法,将处理好的option对象添加的页面上布局好的div中,进行数据可视化显示。

作为优选,S4进一步包括通过setTimeInterval、setTimeOut,让数据图标进行动态展示。

作为优选,进一步包括:用不同颜色展示不同量级的数据。

为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。

在具体使用时,根据本发明所述的一种基于GIS信息的人群行为分布的可视化方法,包括如下步骤:

1.用户访问网站,网站会在访问记录中保存用户的访问信息,然后利用logstash进行数据标准化,并将数据传输到kafka中,作为临时保存。

2.利用storm实时分布式框架处理数据,从kafka中读取数据,然后根据采集到的用户数据,如用户的ip地址,然后根据ip信息查询出相应的gis信息,信息处理后,将数据存储到hdfs中。

3.利用hadoop对信息化的数据进行统计分析,如根据用户的gis信息,访问网页的路径path,统计出不同的数据,将分析后的结果,即用户访问网站的信息,用户的gis信息,用户访问数保存到mysql数据库中。

4.前端通过js的ajax请求后台api接口,取回保存到mysql中的统计数据。然后根据可视化页面展示的需求,将取回的数据转为页面展示所需要的option对象。

5.根据不同的展示数据方式选择相对应的图标option对象,将之前处理好的数据json对象,添加到相对应的图标的option对象中。

6.然后通过调用已经封装好的api方法,将已经处理好的option对象添加的页面上布局好的div中,此时就初步实现了数据的可视化展示。以此同时也会通过setTimeInterval、setTimeOut(定时器)等js前端技术,让数据图标动态的进行变化展示。

综上所述,借助于本发明的上述技术方案,通过采用不同颜色的点代表不同的点密度,解决了图形过大产生的遮盖问题和地区密度两级分化的可视化效果较差的情况,同时采用不同密度的点和地图分层技巧减小内存,避免了由于内存不够而加载过慢的现象,最后基于IP地址获取更加精细的GIS信息,使得人群位置更加精准。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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