一种基于WebGIS环境下的个性化地图多屏显示方法及装置与流程

文档序号:16400056发布日期:2018-12-25 20:04阅读:1220来源:国知局
一种基于WebGIS环境下的个性化地图多屏显示方法及装置与流程

本发明涉及一种地图显示方法及装置,属于地理信息技术领域,具体是涉及一种基于webgis环境下的个性化地图多屏显示方法及装置。

背景技术

在目前基于web环境下的地图应用系统中,往往需要在地图上显示多种类别的专题数据,如基础地形数据、卫星影像数据、规划行业的规划编制数据、国土行业的地籍数据、历史数据、现状数据等等。传统的方式往往采用在一个地图上叠加查看,但由于数据可能存在互相压盖的情况(如多个年度的同一区域的影像数据、某个片区的规划数据和现状数据),很难直观的看到数据之间的对比差异。

现有技术中存在一些地图多屏组合方案,如二分屏和四分屏。二分屏采用左右排列,在两个地图屏幕中,分别展示不同的数据。四分屏采用“田”字形排列方式,左上、右上、左下、右下各一个屏幕,相较二分屏可以同时展示更多专题数据。

二分屏、四分屏显示时,因其分屏数据量比较固定,布局模式较为单一,多屏模式下的地图操作功能较为简陋。

对5到9个地图需要分屏的模式下没有提出合适解决方案。此外,现有的设计方案为,多屏模式下,默认地图全部联动,没有提供临时的联动解锁功能。



技术实现要素:

本发明主要是解决现有技术所存在的分屏数据目固定,联动方式固定的技术问题,提供了一种基于webgis环境下的个性化地图多屏显示方法及装置。该方法及装置能够满足任意分屏的使用需求,并且在每种多屏模式下,都能够提供合适的地图布局和排列方式。在多屏模式下,除了保留图层加载、地图联动漫游功能外,还为每个地图提供一个名为“联动锁”的功能按键,可以让使用者自主选择是否将当前地图与其他地图联动,获得更高级的使用体验。

本发明的上述技术问题主要是通过下述技术方案得以解决的:

一种基于webgis环境下的个性化地图多屏显示方法,包括:

布局显示步骤,根据用户选择的分屏模式将屏幕划分了多个子屏,将各专题地图加载至对应的子屏中;

联动管理步骤,将用户选择的需要联动更新的专题地图标识加载于联动控制器的联动更新集合中;

同步更新步骤,监听联动更新集合中各专题地图的缩放和漫游事件,当监听到联动更新集合中任一专题地图的触发事件后,至少同步更新联动更新集合中的另一专题地图。

在本发明的至少一个实施例中,一种基于webgis环境下的个性化地图多屏显示方法,所述布局显示步骤具体包括:

格网创建子步骤,根据当前的布局模式创建布局格网,对每个格网进行编号并按宽高百分比设置各格网的大小;

实例获取子步骤,获取地图的数量,计算与前一次分屏模式下的地图容器数量差,若容器数量差大于零,则新创建与容器数量差值相等的地图容器新实例并添加到集合中;若容器差数量小于零,则从地图集合中移除并销毁与容器差数量相等的地图容器;

格网显示子步骤,将每个地图容器按编号依次放入对应的格网中。

在本发明的至少一个实施例中,所述联动管理步骤中,维护两个对外接口,分别用于联动更新集合中专题地图的添加和删除。

在本发明的至少一个实施例中,所述联动管理步骤中,聚集第n个map,捕获用户点击联动锁按扭,调用地图添加方法,判断与点击事件相对应的map是否存在联动更新集合中,若否,则添加地图、监听地图移动事件。

在本发明的至少一个实施例中,所述联动管理步骤中,聚集第n个map,捕获用户释放联动锁按扭事件,调用地图移除方法,判断与点击事件相对应的map是否存在联动更新集合中,若是,则移除地图、监听地图移动事件。

在本发明的至少一个实施例中,所述同步更新步骤中,当监听到联动更新集合中任一专题地图的触发事件后,同步更新联动更新集合中的所有专题地图。

在本发明的至少一个实施例中,所述同步更新步骤中,维护一个视图管理函数mapviewactionsyncmanager的实例用于捕捉并处理地图移动事件;当第n个map移动时,派发地图移动事件,系统维护的mapviewactionsyncmanager函数实例捕获移动事件后检查与事件相对应的map是否在mapviewactionsyncmanager的管理序列中,若是,则遍历mapviewactionsyncmanager管理序列中的其它地图容器,改变其它地图的中心点和比例尺。

一种基于webgis环境下的个性化地图多屏显示装置,包括:

布局显示模块,根据用户选择的分屏模式将屏幕划分了多个子屏,将各专题地图加载至对应的子屏中;

联动管理模块,将用户选择的需要联动更新的专题地图标识加载于联动控制器的联动更新集合中;

同步更新模块,监听联动更新集合中各专题地图的缩放和漫游事件,当监听到联动更新集合中任一专题地图的触发事件后,至少同步更新联动更新集合中的另一专题地图。

在本发明的至少一个实施例中,所述布局显示模块具体包括:

格网创建单元,根据当前的布局模式创建布局格网,对每个格网进行编号并按宽高百分比设置各格网的大小;

实例获取单元,获取地图的数量,计算与前一次分屏模式下的地图容器数量差,若容器数量差大于零,则新创建与容器数量差值相等的地图容器新实例并添加到集合中;若容器差数量小于零,则从地图集合中移除并销毁与容器差数量相等的地图容器;

格网显示单元,将每个地图容器按编号依次放入对应的格网中。

在本发明的至少一个实施例中,所述联动管理模块中,维护两个对外接口,分别用于联动更新集合中专题地图的添加和删除。

因此,本发明具有如下优点:

1.通过在传统二分屏、四分屏的基础上,实现了从多种分屏的模式,并对应设计出了相应的排列布局方式,为使用者提供了不同的个性化选择。

2.设计了联动锁功能,使用者可以按需锁定地图,与其他地图保持联动;也可以释放锁定,让目标地图保持独立漫游,不受其他地图的影响。这种设计方式增强了使用者的使用体验,扩展了功能的适用范围。

附图说明

图1-1至图1-2为二分屏模式;

图2-1至图2-2为三分屏模式,图3-1至图3-3所示为四分屏模式,图4-1至图4-2为五分屏模式,图5-1至图5-3为六分屏模式,图6-1至图6-2为七分屏模式,图7-1至图7-2为八分屏模式,图8-1至图8-3为九分屏模式;

图9是切换地图分屏的操作流程示意图;

图10是地图联动更新流程图;

图11是本实施封装的两个对外接口示意图;

图12为启示或关闭联动更新流程图。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。

实施例:

本实施例的技术方案分为两个方面,一方面是多屏模式的布局设计和计算方法,另一方面是设计“联动加载”功能。下面分别介绍。

多屏模式的布局

针对多屏模式的布局进行总体设计,以下设计采用目前主流的宽屏比例,每种分屏数量根据布局方式设计了多种排列组合形式,在分屏数据量逐步增多的同时,保持了对部分重点地图的突出显示。

据此针对8种分屏的数量,一共设计出了19种排列组合模式,覆盖常用的使用场景。

如图1-1至图1-2所示,为二分屏模式,图1为两屏大小相同的情况,图2为根据需求其中一屏增大,另一屏相对较小的显示方式。

图2-1至图2-2为三分屏模式,图3-1至图3-3所示为四分屏模式,图4-1至图4-2为五分屏模式,图5-1至图5-3为六分屏模式,图6-1至图6-2为七分屏模式,图7-1至图7-2为八分屏模式,图8-1至图8-3为九分屏模式。

切换地图分屏的操作流程如图9所示。其中,针对不同的地图分屏数量要求和布局要求,设计了三个参数:mapcount、layoutmode和maparray。mapcount表示要分屏的地图数量,取值范围为[2,9];layoutmode为特定数量下的布局模式,根据前述的方案枚举,取值为a,b,c。maparray表示当前用于分屏的地图容器的集合。

当切换为mapcount(n),layoutmode(n)时,根据切换之前的分屏数量地图mapcount(m)计算出切换前后的地图数量差delta(t),当delta(t)>0时,说明需要创建地图的新实例以放置到布局中,每个地图有自己的唯一标识符,新增的地图放到maparray地图集合的末尾;当delta(t)<0时,说明需要减少地图的数量,那么将多余delta(t)数量的地图容器执行销毁操作,销毁策略是从maparray地图结合的末尾倒序选取。通过以上操作后,maparray中地图的数量与mapcount(n)保持一致。根据layoutmode(n)所设置的值,计算每个地图容器在目标布局模式下的位置。为了不同的屏幕比例和分辨率,每个地图用百分比相对布局模式进行定位。

联动加载方式

地图联动更新流程如图10所示。本实施例在屏幕上设计一个枢纽装置,名为多屏地图联动控制器——mapviewactionsyncmanager,用以管理多屏模式下所有地图的实例,每个地图有自己的唯一标识符。mapviewactionsyncmanager封装两个对外接口,如图11所示,一个是将地图添加到联动总线中,另一个是将地图从联动总线中移除。

图12为启示或关闭联动更新流程图。

当创建地图的新实例时,当把通过mapviewactionsyncmanager把地图添加到联动总线中时,监听该地图缩放和漫游事件,当事件触发时,获取地图移动或缩放后的中心点和比例尺,通过mapviewactionsyncmanager通知其他所有已启用联动锁的地图,保持范围同步。

当需要销毁地图时,会先mapviewactionsyncmanager通过当把地图从联动总线中移除时,取消监听该地图的缩放和漫游事件,这样地图的漫游或缩放不会触发其他地图发生变化;同时由于已经标识为了停用联动锁,其他地图范围的改变也不会触发自己范围的改变。

为了提高程序性能、减少事件重复监听的问题,在每次添加和移除之前都会先判断联动总线中是否存在目标地图。

本实施例中,当把地图添加到联动总线中时,监听该地图缩放和漫游事件,当事件触发时,获取地图移动或缩放后的中心点和比例尺,通过mapviewactionsyncmanager通知其他所有已启用联动锁的地图,保持范围同步。

当把地图从联动总线中移除时,取消监听该地图的缩放和漫游事件,这样地图的漫游或缩放不会触发其他地图发生变化;同时由于已经标识为了停用联动锁,其他地图范围的改变也不会触发自己范围的改变。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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