本发明涉及数据可视应用技术领域,尤其涉及一种地图显示控制方法、智能终端及存储介质。
背景技术:
随着gis(geographicinformationsystem或geo-informationsystem,地理信息系统,是一种特定的十分重要的空间信息系统,它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统)数据可视应用的广泛发展,地图自适应调整也在各专业系统中频繁得到使用。
作为一个基础实用的功能,目前地图的自适应功能主要是通过根据已有的点位数据或路线数据,调整地图的等级和中心点让地图元素全呈现在整个浏览器界面或整个地图可视界面内来实现。针对一些有特殊需求的情况则无法满足,比如在一般的地图可视化系统界面,地图平铺作为底图,地图上下左右有标题栏或统计表格显示,地图上只有若干份之一来展示地图点位效果。现有技术无法实现地图在指定范围内自适应、方便地根据需求使地图元素呈现在较好视觉地图层级的指定区域。
因此,现有技术还有待于改进和发展。
技术实现要素:
本发明的主要目的在于提供一种地图显示控制方法、智能终端及存储介质,旨在解决现有技术中的上述缺陷。
为实现上述目的,本发明提供一种地图显示控制方法,所述地图显示控制方法包括如下步骤:
指定地图显示范围的参数,判断所述地图显示范围的参数是否有效;
若所述地图显示范围的参数有效,则判断地理元素的个数是否大于预设值;
若地理元素的个数大于预设值,计算多个地理元素构成的封闭矩形和扩展后的目标矩形显示范围,控制地图调整显示为目标矩形范围。
可选地,所述的地图显示控制方法,其中,所述参数包括:起始位置、终止位置、地图元素坐标点集以及与周边间隔参数。
可选地,所述的地图显示控制方法,其中,所述判断所述地图显示范围的参数是否有效,之后还包括:
若所述地图显示范围的参数无效,则调整所述地图显示范围的参数,直到所述地图显示范围的参数有效为止。
可选地,所述的地图显示控制方法,其中,所述若地理元素的个数大于预设值,计算多个地理元素构成的封闭矩形和扩展后的目标矩形显示范围,控制地图调整显示为目标矩形范围,具体包括:
若地理元素的个数大于预设值,计算由多个地理元素构成的封闭矩形;
根据显示起止范围参数和地理元素构成的封闭矩形计算扩展后的目标矩形显示范围。
可选地,所述的地图显示控制方法,其中,所述根据显示起止范围参数和地理元素构成的封闭矩形计算扩展后的目标矩形显示范围,之后还包括:
根据参数中的与周边间隔参数与计算得出的目标矩形显示范围,调用地图sdk提供的设置地图边界接口,控制地图调整显示为目标矩形范围。
可选地,所述的地图显示控制方法,其中,所述判断地理元素的个数是否大于预设值,之后还包括:
若地理元素的个数不大于预设值,获取到当前地图显示的范围边界及地图中心点,计算所述地图中心点与元素坐标点的经纬度差值a;
根据参数提供的显示起止范围计算出跨度值,并计算经纬度的偏移值b,再根据地图中心点、经纬度差值a和偏移值b计算出新的地图中心点;
调用地图sdk的设置地图中心点接口,切换地图视点,调整显示为目标范围。
可选地,所述的地图显示控制方法,其中,所述与周边间隔参数具体为:与显示屏上下左右的间距,单位为屏幕像素。
可选地,所述的地图显示控制方法,其中,所述预设值为1。
此外,为实现上述目的,本发明还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的地图显示控制程序,所述地图显示控制程序被所述处理器执行时实现如上所述的地图显示控制方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,其中,所述存储介质存储有地图显示控制程序,所述地图显示控制程序被处理器执行时实现如上所述的地图显示控制方法的步骤。
本发明通过指定地图显示范围的参数,判断所述地图显示范围的参数是否有效;若所述地图显示范围的参数有效,则判断地理元素的个数是否大于预设值;若地理元素的个数大于预设值,计算多个地理元素构成的封闭矩形和扩展后的目标矩形显示范围,控制地图调整显示为目标矩形范围。本发明能够指定地图自适应范围、自动将需要显示的地图元素呈现在指定的屏幕位置,能够支持任意分辨率的显示屏,可为gis数据可视化提供更好的支持。
附图说明
图1是本发明地图显示控制方法的较佳实施例的流程图;
图2是本发明地图显示控制方法的较佳实施例中整个执行流程的流程示意图;
图3是本发明地图显示控制方法的较佳实施例中与周边间隔参数的示意图;
图4是本发明地图显示控制方法的较佳实施例中显示参数中5个地理元素坐标构成的首尾封闭的矩形的示意图;
图5是本发明地图显示控制方法的较佳实施例中根据显示起止位置为5-12,将封闭矩形沿x轴均分成12份的示意图;
图6是本发明地图显示控制方法的较佳实施例中地图调整显示为目标矩形范围的示意图;
图7为本发明智能终端的较佳实施例的运行环境示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明较佳实施例所述的地图显示控制方法,如图1和图2所示,所述地图显示控制方法包括以下步骤:
步骤s10、指定地图显示范围的参数,判断所述地图显示范围的参数是否有效;
步骤s20、若所述地图显示范围的参数有效,则判断地理元素的个数是否大于预设值;
步骤s30、若地理元素的个数大于预设值,计算多个地理元素构成的封闭矩形和扩展后的目标矩形显示范围,控制地图调整显示为目标矩形范围。
具体地,如图2所示,整个技术方案的执行过程如下:
开始;
指定地图显示范围的参数,其中,所述参数包括:起始位置、终止位置、地图元素坐标点集以及与周边间隔参数;
判断所述地图显示范围的参数是否有效;
若所述地图显示范围的参数无效,则调整所述地图显示范围的参数,直到所述地图显示范围的参数有效为止;
若所述地图显示范围的参数有效,则判断地理元素的个数是否大于预设值,其中,所述预设值优选为1;
若地理元素的个数大于预设值,计算由多个地理元素构成的封闭矩形,根据显示起止范围参数和地理元素构成的封闭矩形计算扩展后的目标矩形显示范围;
根据参数中的与周边间隔参数与计算得出的目标矩形显示范围,调用地图sdk提供的设置地图边界接口,控制地图调整显示为目标矩形范围;
若地理元素的个数不大于预设值,获取到当前地图显示的范围边界及地图中心点,计算所述地图中心点与元素坐标点的经纬度差值a;
根据参数提供的显示起止范围计算出跨度值,并计算经纬度的偏移值b,再根据地图中心点、经纬度差值a和偏移值b计算出新的地图中心点;
调用地图sdk的设置地图中心点接口,切换地图视点,调整显示为目标范围;
结束。
进一步地,先指定地图显示范围的参数:包括起始位置、终止位置、地图元素坐标点集及与周边间隔参数,其中,所述与周边间隔参数具体为:与显示屏(屏幕)上下左右的间距,单位为屏幕像素,所述与周边间隔参数是针对显示屏显示范围而言的,如图3所示。
其中,指定地图显示范围参数对象为parameter,起始位置start、终止位置end、地图元素坐标点集coordinates及与周边间隔margin如下:
这样设置的好处是:可灵活定义所需展示的地理元素展示在指定的位置,具体到从哪个位置开始,到哪个位置结束,与显示屏上下左右的间隔是多少;要显示的地图元素可以是一个,也可以是多个。
判断参数有效性具体为:将地图可视界面按x轴均分为12等份,起止范围值都需要在0~12之间,同时start必须小于等于end值,如图5所示,地图分成12份,start和end代表显示区域:从第几等份处开始,到第几等份结束;点集合为数组,包含元素个数必须大于等于1;间隔参数可给可不给,默认值全为0。
判断参数有效,后续地图自适应调整才有依据将所需的地图元素显示在预期的区域。
进一步地,判断地理元素的个数大于1之后,计算由这些地图元素构成的封闭矩形,根据显示起止范围参数和地理元素构成的封闭矩形计算扩展后的目标矩形显示范围;地理元素即地图上显示的点位图标,如图4所示,上有5个水滴形的点位图标,就代表5个地理元素。
如图4所示,由显示参数coordinates中5个地理元素坐标构成的首尾封闭的矩形(所有元素在矩形之内)坐标点集为[[113.9925,22.587404],[114.046629,22.587404],[114.046629,22.624486],[113.9925,22.624486],[113.9925,22.587404]]。
根据显示起止位置为5~12,先将封闭矩形沿x轴均分成12份;计算单位间隔的经度值,如图5所示。
然后根据已知数据计算扩展后的目标矩形显示范围(即目标矩形的左下、右上两点坐标即可):首先计算出封闭矩形所占范围(end-start 1),可计算出目标矩形左下点经度:初始封闭矩形左下角点经度减去单位间隔经度差乘start-1的值,同理可计算出目标矩形右上角经度,另外,目标矩形的左下角、右上角纬度与初始封闭矩形的相等,由此可得出目标矩形的最终范围。
进一步地,根据参数提供的间隔值与计算得出的目标矩形范围,即可调用地图sdk提供的设置地图边界接口,使地图调整显示为目标矩形范围。
整个显示范围为目标区域,如图6所示,右边方框为初始封闭区域,根据要求显示在5~12区间内,与上下左右的间隔分别为10,10,30,30;这样的好处是完全可自定义显示范围,让地理元素自动显示在特定的范围。
只有一个地理元素时,首先获取到当前地图显示的范围边界及地图中心点,计算中心点与此元素坐标点的经纬度差值a;然后根据参数提供的显示起止范围计算出跨度值进一步计算经纬度的偏移值b,在地图中心点的基础上,结合ab偏移值即可算出新的地图中心点,最后调用地图sdk的设置地图中心点接口,即可以平缓的方式切换地图视点、调整显示为目标范围。
本发明提供了一种适用于任意显示屏的可指定显示范围的地图自适应方法,在gis数据可视应用上面,支持各种分辨率的显示屏,自适应调整、无需人工手动拖拽,平缓地将地图上的可视化元素以较好的视角呈现在指定范围。
本发明提供的技术方案,能够指定地图自适应范围、自动将需要显示的地图元素呈现在指定的屏幕位置,能够有效提升用户体验的同时,支持任意分辨率的显示屏,可为gis数据可视化提供更好的支持。
进一步地,如图7所示,基于上述地图显示控制方法,本发明还相应提供了一种智能终端,所述智能终端包括处理器10、存储器20及显示器30。图7仅示出了智能终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器20在一些实施例中可以是所述智能终端的内部存储单元,例如智能终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述智能终端的外部存储设备,例如所述智能终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器20还可以既包括所述智能终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述智能终端的应用软件及各类数据,例如所述安装智能终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有地图显示控制程序40,该地图显示控制程序40可被处理器10所执行,从而实现本申请中地图显示控制方法。
所述处理器10在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述地图显示控制方法等。
所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器30用于显示在所述智能终端的信息以及用于显示可视化的用户界面。所述智能终端的部件10-30通过系统总线相互通信。
在一实施例中,当处理器10执行所述存储器20中地图显示控制程序40时实现以下步骤:
指定地图显示范围的参数,判断所述地图显示范围的参数是否有效;
若所述地图显示范围的参数有效,则判断地理元素的个数是否大于预设值;
若地理元素的个数大于预设值,计算多个地理元素构成的封闭矩形和扩展后的目标矩形显示范围,控制地图调整显示为目标矩形范围。
所述参数包括:起始位置、终止位置、地图元素坐标点集以及与周边间隔参数。
所述判断所述地图显示范围的参数是否有效,之后还包括:
若所述地图显示范围的参数无效,则调整所述地图显示范围的参数,直到所述地图显示范围的参数有效为止。
所述若地理元素的个数大于预设值,计算多个地理元素构成的封闭矩形和扩展后的目标矩形显示范围,控制地图调整显示为目标矩形范围,具体包括:
若地理元素的个数大于预设值,计算由多个地理元素构成的封闭矩形;
根据显示起止范围参数和地理元素构成的封闭矩形计算扩展后的目标矩形显示范围。
所述根据显示起止范围参数和地理元素构成的封闭矩形计算扩展后的目标矩形显示范围,之后还包括:
根据参数中的与周边间隔参数与计算得出的目标矩形显示范围,调用地图sdk提供的设置地图边界接口,控制地图调整显示为目标矩形范围。
所述判断地理元素的个数是否大于预设值,之后还包括:
若地理元素的个数不大于预设值,获取到当前地图显示的范围边界及地图中心点,计算所述地图中心点与元素坐标点的经纬度差值a;
根据参数提供的显示起止范围计算出跨度值,并计算经纬度的偏移值b,再根据地图中心点、经纬度差值a和偏移值b计算出新的地图中心点;
调用地图sdk的设置地图中心点接口,切换地图视点,调整显示为目标范围。
所述与周边间隔参数具体为:与显示屏上下左右的间距,单位为屏幕像素。
所述预设值为1。
本发明还提供一种存储介质,其中,所述存储介质存储有地图显示控制程序,所述地图显示控制程序被处理器执行时实现如上所述的地图显示控制方法的步骤。
综上所述,本发明提供一种地图显示控制方法、智能终端及存储介质,所述方法包括:指定地图显示范围的参数,判断所述地图显示范围的参数是否有效;若所述地图显示范围的参数有效,则判断地理元素的个数是否大于预设值;若地理元素的个数大于预设值,计算多个地理元素构成的封闭矩形和扩展后的目标矩形显示范围,控制地图调整显示为目标矩形范围。本发明能够指定地图自适应范围、自动将需要显示的地图元素呈现在指定的屏幕位置,能够支持任意分辨率的显示屏,可为gis数据可视化提供更好的支持。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
1.一种地图显示控制方法,其特征在于,所述地图显示控制方法包括:
指定地图显示范围的参数,判断所述地图显示范围的参数是否有效;
若所述地图显示范围的参数有效,则判断地理元素的个数是否大于预设值;
若地理元素的个数大于预设值,计算多个地理元素构成的封闭矩形和扩展后的目标矩形显示范围,控制地图调整显示为目标矩形范围。
2.根据权利要求1所述的地图显示控制方法,其特征在于,所述参数包括:起始位置、终止位置、地图元素坐标点集以及与周边间隔参数。
3.根据权利要求1所述的地图显示控制方法,其特征在于,所述判断所述地图显示范围的参数是否有效,之后还包括:
若所述地图显示范围的参数无效,则调整所述地图显示范围的参数,直到所述地图显示范围的参数有效为止。
4.根据权利要求1或2所述的地图显示控制方法,其特征在于,所述若地理元素的个数大于预设值,计算多个地理元素构成的封闭矩形和扩展后的目标矩形显示范围,控制地图调整显示为目标矩形范围,具体包括:
若地理元素的个数大于预设值,计算由多个地理元素构成的封闭矩形;
根据显示起止范围参数和地理元素构成的封闭矩形计算扩展后的目标矩形显示范围。
5.根据权利要求4所述的地图显示控制方法,其特征在于,所述根据显示起止范围参数和地理元素构成的封闭矩形计算扩展后的目标矩形显示范围,之后还包括:
根据参数中的与周边间隔参数与计算得出的目标矩形显示范围,调用地图sdk提供的设置地图边界接口,控制地图调整显示为目标矩形范围。
6.根据权利要求1或2所述的地图显示控制方法,其特征在于,所述判断地理元素的个数是否大于预设值,之后还包括:
若地理元素的个数不大于预设值,获取到当前地图显示的范围边界及地图中心点,计算所述地图中心点与元素坐标点的经纬度差值a;
根据参数提供的显示起止范围计算出跨度值,并计算经纬度的偏移值b,再根据地图中心点、经纬度差值a和偏移值b计算出新的地图中心点;
调用地图sdk的设置地图中心点接口,切换地图视点,调整显示为目标范围。
7.根据权利要求2所述的地图显示控制方法,其特征在于,所述与周边间隔参数具体为:与显示屏上下左右的间距,单位为屏幕像素。
8.根据权利要求1所述的地图显示控制方法,其特征在于,所述预设值为1。
9.一种智能终端,其特征在于,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的地图显示控制程序,所述地图显示控制程序被所述处理器执行时实现如权利要求1-8任一项所述的地图显示控制方法的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有地图显示控制程序,所述地图显示控制程序被处理器执行时实现如权利要求1-8任一项所述的地图显示控制方法的步骤。
技术总结