一种结合地图进行数据分析的方法
技术领域
本发明涉及数据分析,更具体地说,涉及一种结合地图进行数据分析的方法。
背景技术
对于移动通信运营商来说,对数据的分析处理是网络运营维护的一个重要部分,而随着移动通信业务的发展,如何能够直观、形象地展示数据分析后的处理结果又成为一大难点。
现有方法中,首先获取某个省、某个市、市里的某个区域的数据,再对划定范围的数据进行统计分析,最后以报表的方式显示数据分析后的处理结果。由于报表的方式难以展示数据分析后的处理结果是属于哪个区域的,因此不够直观、形象,用户体验不高。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述数据分析方法不够直观、形象的缺陷,提供一种结合地图进行数据分析的方法。
本发明解决其技术问题所采用的技术方案是:构造一种结合地图进行数据分析的方法,包括:
a、以传入地图的指定点坐标为屏幕装载地图容器的中心,根据屏幕装载地图容器的宽度和高度计算出地图可视区域;
b、根据计算得到的地图可视区域获取该地图可视区域对应的地图瓦片,拼接并显示获得的地图瓦片;
c、基于用户的操作指令,对地图可视区域上用户选择的区域内的数据执行相应的分析处理。
上述结合地图进行数据分析的方法中,所述步骤a具体包括:
a1、根据屏幕装载地图容器的宽度和高度确定该屏幕装载地图容器的中心;
a2、将传入地图的指定点坐标从经纬度坐标变换为屏幕坐标,并作为屏幕装载地图容器的中心坐标;
a3、根据所述指定点的屏幕坐标以及屏幕装载地图容器的宽度和高度确定屏幕装载地图容器的四个角的屏幕坐标;
a4、将屏幕装载地图容器的四个角的屏幕坐标转换为经纬度坐标,从而得到屏幕装载地图容器中的地图可视区域。
上述结合地图进行数据分析的方法中,所述传入地图的指定点坐标为传入地图的中心坐标或用户所在区域内某个点的坐标。
上述结合地图进行数据分析的方法中,所述步骤b具体包括:
b1、根据传入地图的经纬度宽度和高度以及传入地图的默认缩放级别所对应的横向和纵向地图瓦片数计算每个地图瓦片在该默认缩放级别所占的经纬度宽度和高度;
b2、根据地图可视区域以及每个地图瓦片在该默认缩放级别所占的经纬度宽度和高度计算出该地图可视区域中各个方位的地图瓦片的起始位置;
b3、根据计算得到的地图可视区域中各个方位的地图瓦片的起始位置获取对应的地图瓦片,拼接并显示获取的地图瓦片。
上述结合地图进行数据分析的方法中,所述步骤b进一步包括:
预先将传入地图根据精度要求和缩放级别划分成多个地图瓦片,并将地图瓦片按照行列编号存储。
上述结合地图进行数据分析的方法中,所述步骤c具体包括:
c1、基于用户在地图可视区域上输入的地图操作指令执行对应的地图操作;
c2、基于用户在当前显示的地图可视区域上输入的区域选择指令,选择出对应的区域,并计算出选择的区域的经纬度坐标范围;
c3、基于用户输入的数据处理指令,获取具有与选择的区域的经纬度范围相对应的经纬度属性的数据,并对该数据执行分析处理。
上述结合地图进行数据分析的方法中,所述步骤c还包括:
c4、将数据分析处理的结果显示于该选择的区域内。
上述结合地图进行数据分析的方法中,所述步骤c1在用户输入地图缩放指令时进一步包括:
c11、检测用户选择的地图缩放级别和当前显示的地图可视区域的中心;
c12、以当前显示的地图可视区域的中心作为缩放后的地图可视区域的中心,根据屏幕装载地图容器的宽度和高度计算出缩放后的地图可视区域;
c13、根据缩放后的地图可视区域获取该缩放后的地图可视区域对应的地图瓦片,拼接并显示获得的地图瓦片。
上述结合地图进行数据分析的方法中,所述步骤c1在用户输入地图平移指令时进一步包括:
c11’、检测平移的方向和距离以及当前显示的地图可视区域的中心,据此计算出平移后的地图可视区域的中心;
c12’、根据屏幕装载地图容器的宽度和高度计算出平移后的地图可视区域;
c13’、根据平移后的地图可视区域获取该平移后的地图可视区域对应的地图瓦片,拼接并显示获得的地图瓦片。
上述结合地图进行数据分析的方法中,所述传入地图包括行政区域规划矢量图和卫星影像图。
本发明的数据分析方法通过结合地图进行数据分析,能够更清楚、更形象地获知划定范围的数据的分析结果,并且,本发明的数据分析方法所提供的地图是由预先划分的多个瓦片拼接得到的,不是在用户选择某个区域之后划分的,因此能够加快地图显示的速度。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是根据本发明一个实施例的结合地图进行数据分析的方法的流程图;
图2是图1中步骤120的具体实施例的流程图;
图3是图1中步骤130的具体实施例的流程图;
图4是图1中步骤140的具体实施例的流程图;
图5是在屏幕装载地图容器中显示传入地图的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明一个实施例提供的结合地图进行数据分析的方法流程100。如图1所示,该结合地图进行数据分析的方法100开始于步骤110。
随后,在下一步骤120,以传入地图的指定点坐标为屏幕装载地图容器的中心,根据屏幕装载地图容器的宽度和高度计算出地图可视区域。其中,传入地图包括行政区域规划矢量图与卫星影像图,指定点坐标以经纬度表示,可以是传入地图本身的中心坐标,也可以是用户所在区域内某个点的坐标。屏幕装载地图容器是指在显示器显示的地图信息的范围,在该屏幕装载地图容器显示的地图信息的范围即为地图可视区域。
随后,在下一步骤130,根据计算得到的地图可视区域获取该地图可视区域对应的地图瓦片,拼接并显示获得的地图瓦片。为了加快地图显示的速度,传入地图被预先根据地图精度要求的高低以及缩放级别的不同划分成多个地图瓦片,并按照一定的索引规则存储,以便查找。地图瓦片的单位为像素,一个地图瓦片的大小可以例如设定为256*256像素。整个缩放级别对应的地图瓦片数是以倒金字塔的形式分布的。例如,一个具体实施例中,可将缩放级别的数量定为17级,第一个缩放级别对应的横向纵向的地图瓦片数为2*2,第二个缩放级别对应的横向纵向的地图瓦片数为4*4,依次类推,每个缩放级别的地图瓦片数以2倍率增长。地图瓦片可按照行列编号信息进行存储。优选地,将同一行的地图瓦片存放在同一文件夹中,方便查找。当然,也可以将同一列的地图瓦片存放在同一文件夹中。进一步地,为了保护数据安全,可以对存储的地图瓦片数据进行加密。显示传入地图之前,只要查找出当前缩放级别下地图可视区域所对应的地图瓦片并将其拼接即可,从而加快了地图的显示速度。
随后,在下一步骤140,基于用户的操作指令,对地图可视区域上用户选择的区域内的数据执行相应的分析处理。用户在显示的地图可视区域上输入的操作指令包括地图操作指令(例如放大指令、缩小指令、平移指令、漫游指令、图层设置指令、测量指令、地图切换指令等)、区域选择指令(例如框选指令、圈选指令、多边形选指令等)以及数据处理指令,后续将详细介绍相应操作指令的执行流程。
最后,方法100结束于步骤150。
图2是图1中步骤120的具体实施例的流程图。如图2所示,步骤120的具体流程开始于步骤121。
随后,在下一步骤122,接收用户输入的地图进入指令。
随后,在下一步骤123,根据屏幕装载地图容器的宽度和高度(以像素为单位)确定该屏幕装载地图容器的中心。
随后,在下一步骤124,以传入地图为依据建立经纬度坐标系。
随后,在下一步骤125,将传入地图的指定点坐标从经纬度坐标变换为屏幕坐标(屏幕坐标的单位为像素),并作为屏幕装载地图容器的中心坐标。如前所述,该指定点坐标可以是传入地图本身的中心坐标,也可以用户所在区域内某个点的坐标。
随后,在下一步骤126,根据指定点的屏幕坐标和屏幕装载地图容器的宽度和高度确定屏幕装载地图容器的四个角的屏幕坐标。
随后,在下一步骤127,将屏幕装载地图容器的四个角的屏幕坐标转换为经纬度坐标,从而得到屏幕装载地图容器中的地图可视区域。结合图5所示,其中框201表示整个传入地图的大小,框202表示屏幕装载地图容器的大小,亦即地图可视区域,N代表纬度,T代表经度,minlon表示最小的纬度,maxlat表示最大的经度。
最后,步骤120的具体流程结束于步骤128。
图3是图1中步骤130的具体实施例的流程图。如图3所示,步骤130的具体流程开始于步骤131。
随后,在下一步骤132,根据传入地图对应的经纬度宽度、高度(以经纬度表示)以及该传入地图的默认缩放级别所对应的横向和纵向地图瓦片数计算每个地图瓦片在该默认的缩放级别所占的经纬度宽度和高度。
随后,在下一步骤133,根据地图可视区域(以经纬度表示)以及每个地图瓦片在该默认的缩放级别所占的经纬度宽度和高度,计算出该地图可视区域中各个方位的地图瓦片的起始位置。具体实施例中,地图瓦片预先按照行列编号存储,因而根据地图可视区域的经纬度范围亦即每个地图瓦片所占经纬度宽度和高度,便可计算出地图可视区域的各方位的地图瓦片的起始行列位置。
随后,在下一步骤134,根据计算得到的地图可视区域中各个方位的地图瓦片的起始位置获取对应的地图瓦片,拼接并显示获取的地图瓦片。
最后,步骤130的具体流程结束于步骤135。
图4是图1中步骤140的具体实施例的流程图。如图4所示,步骤140的具体流程开始于步骤141。
随后,在下一步骤142中,接收用户在地图可视区域上输入的地图操作指令,执行对应的地图操作。该地图操作指令包括放大指令、缩小指令、平移指令、漫游指令、图层设置指令、测量指令、地图切换指令。
其中,当地图操作指令为放大指令或缩小指令时,首先检测用户选择的地图放大或缩小的级别,以及检测当前显示的地图可视区域的中心;然后,以当前显示的地图可视区域的中心作为放大或缩小后的地图可视区域的中心,根据屏幕装载地图容器的宽度和高度算出缩放后该屏幕装载地图容器中的地图可视区域;再然后,根据缩放后的地图可视区域获取该缩放后的地图可视区域对应的地图瓦片,拼接并显示获得的地图瓦片。地图瓦片的获取在前面已有相关描述,此处不再赘述。具体实施例中,放大指令和缩小指令可通过鼠标滚轮滑动或点击缩放控件实现。比如放大指令可通过鼠标滚轮向上滑动实现,或者通过点击缩放控件的放大标识实现;缩小指令可通过鼠标滚轮向下滑动实现,或者通过点击缩放控件的缩小标识实现。用户每操作一次鼠标滚轮或每点击一次缩放控件,则默认在当前级别上放大或者缩小一个级别。
其中,当地图操作指令为平移或漫游(也称拖动)指令时,首先检测平移的方向(平移指令为上、下、左、右平移中的哪一种)以及当前显示的地图可视区域的中心,据此计算出平移或漫游后地图可视区域的中心;然后,根据屏幕装载地图容器的宽度和高度算出平移后该屏幕装载地图容器中的地图可视区域;再然后,根据平移后的地图可视区域获取该平移后的地图可视区域对应的地图瓦片,拼接并显示获得的地图瓦片。
其中,当地图操作指令为图层设置指令时,判断该图层设置指令为增加某个图层的指令还是减少某个图层的指令,并根据接收的增加某个图层的指令或者减少某个图层的指令,在当前地图可视区域中增加或减少对应的图层。具体实施例中,地图是由多个图层叠加而成的(仅包含行政区域规划矢量图的无色的图层、包含道路信息的图层、包含小区标识的图层等等),当不想看到某个图层时,可以通过相关设定对某个图层进行隐藏。比如,当接收的图层设置指令为增加一个可以标识小区位置的图层时,则在当前地图中增加已预先生成的可以标识小区位置的图层。
其中,当地图操作指令为测量指令时,侦听用户是否在地图上执行单击动作,若侦听到用户执行第一次单击动作,则检测并记录该第一次单击动作所在的位置,继续侦听用户在地图上执行的非第一次单击动作,记录该非第一次单击动作所在的位置,并统计当前记录的位置与上一个记录的位置的距离,直到侦听到用户执行双击动作才停止。当然,若只需要统计两点的距离,除了上述实现方式,还可以采用以下实现方式:侦听用户在地图上执行按住鼠标左键并且移动鼠标的动作,记录用户按住鼠标左键且未移动鼠标时的光标在地图上的位置,当侦听到用户释放鼠标左键时,统计用户当前释放鼠标左键所在的位置与按住鼠标左键所在位置的距离。
其中,当地图操作指令为地图切换指令时,若当前显示的地图区域为行政区域规划矢量图,则检测当前显示的行政区域规划矢量图的范围,并将当前显示的行政区域规划矢量图切换为卫星影像图,显示的卫星影像图的区域与检测的行政区域规划矢量图显示的范围相同。将卫星影像图切换为行政区域规划矢量图的步骤与上面类似,此处不作赘述。
随后,在下一步骤143中,接收用户在当前显示的地图可视区域上输入的区域选择指令,选择出对应的区域,并计算出选择的区域的经纬度范围。区域选择指令包括框选指令、圈选指令、多边形选指令等,根据该指令,分别在地图可视区域上选择出矩形、圆形、多边形区域。其中,用户实现框选、圈选、多边形选的指令通过矢量标记语言(VectorMarkupLanguage,VML)或可缩放矢量图形(ScalableVectorGraphics,SVG)语言实现。该VML语言可被IE浏览器识别,因此本发明实施例的方法不需要安装其他插件就可以直接在IE浏览器上运行。插件在嵌入到web浏览器后会占用大量的CPU及内存资源,影响客户机的性能,且在客户机硬件配置较低时,运行不够流畅,因此本实施例提供的方法能够简化用户操作,加快了地图的显示速度。同理,SVG语言可被非IE浏览器识别,同样不需安装插件就可以直接在非IE浏览器上运行。
随后,在下一步骤144中,接收用户输入的数据处理指令。
随后,在下一步骤145中,根据用户的数据处理指令,获取具有与选择的区域的经纬度范围相对应的经纬度属性的数据,并对该数据执行分析处理。本发明实施例中,某一区域内的数据,都被设置有与其所属区域相关联的经纬度属性。在用户选择某个区域后,便可采集到与该区域相关联的数据进行分析。
随后,在下一步骤146中,将数据分析处理的结果显示于该选择的区域内。
最后,步骤140的具体流程结束于步骤147。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。