掌桥专利:专业的专利平台
掌桥专利
首页

一种Web GIS主题资源管理方法、系统和服务器

文献发布时间:2024-04-18 20:02:18


一种Web GIS主题资源管理方法、系统和服务器

技术领域

本发明涉及主题资源调度技术领域,特别是涉及一种Web GIS主题资源管理方法、系统和服务器。

背景技术

随着应急指挥调度领域的应用越来越多,调度过程中往往需要跨越不同的组织结构、涉及各种各样的资源与流程,跨域时间、空间与部门分割的限制。那么融合各方、统一协调、统一调度,从而对特殊、突发、应急事件做出有序、快速而高效的反应提出了更高的要求。而Web GIS(Web Geographic Information System)在指挥图页面上融合各种人力、摄像头、布控球、无人机、对讲机等主题资源进行展示调度满足了这一场景,使得Web GIS应用越来越广泛。

常规的主题资源调度,通常是针对明确的主题资源,采用在开发阶段将主题资源结合项目工程共同开发的方式,因此每当有新的主题资源加入前端指挥图时,均需要进行修改项目工程,放入新的主题资源,更新assets文件夹、调试代码、测试发布等流程;即使通过public文件夹更新也需要登录服务器操作前端工程,且都需要单独在数据库录入新的主题资源数据。在版本迭代开发时存在周期长、人力浪费、页面性能下降,以及缓存旧数据重启应用风险大的问题。

发明内容

本发明的目的是解决现有技术中加入新的主题资源数据时需要重新开发部署带来的开发周期长、系统性能较低的问题。

为了实现上述目的,第一方面,本发明提供一种Web GIS主题资源管理方法,所述方法运行于服务器,所述方法包括:

获取主题资源图标和存储主题资源信息的配置文件;所述配置文件包括属性配置文件和主题资源列表文件;

将所述主题资源图标合成一张雪碧图,并计算每个主题资源图标在所述雪碧图中的位置,生成图标位置文件;

对主题资源列表文件进行数据解析,从中获得主题资源信息;

加载地图插件,在对应的部署页面引入UI依赖和所述属性配置文件,并根据所述图标位置文件将所述雪碧图注入所述地图插件;

通过所述地图插件在地图上新建图层,将要素数据显示在所述图层上,所述要素数据为通过所述主题资源信息转换的地图插件可识别数据。

进一步地,所述属性配置文件为定义主题资源各属性的json文件,用于生成树形组织结构;

所述资源列表文件为存储主题资源信息的excel文件。

进一步地,所述将所述主题资源图标合成一张雪碧图,并计算每个主题资源图标在所述雪碧图中的位置,生成图标位置文件,包括:

通过webpack-spritesmith插件,将所述主题资源图标合成一张雪碧图;

计算每个主题资源图标在所述雪碧图中的位置,并根据所述位置,生成json格式的图标位置文件,所述图标位置文件的key为主题资源对应的唯一ID、value为所述主题资源图标在所述雪碧图中的位置。

进一步地,所述加载地图插件,在对应的部署页面引入UI依赖和所述属性配置文件,并根据所述图标位置文件将所述雪碧图注入所述地图插件,包括:

加载Mapbox-GL地图插件,在对应的部署页面引入Element-UI依赖和所述属性配置文件;

根据所述图标位置文件的ID和位置,将所述雪碧图中的每个主题资源图标注入所述地图插件的指定位置。

进一步地,所述对主题资源列表文件进行数据解析,从中获得主题资源信息,包括:

通过xlsx插件从所述主题资源列表文件中解析出所述主题资源信息;

将所述主题资源信息转换为json格式保存在服务器中,用以通过ID调用;或者将所述主题资源信息存储到主题资源数据库,用以通过Ajax请求调用。

进一步地,所述通过所述地图插件在地图上新建图层,将要素数据显示在所述图层上,所述要素数据为通过所述主题资源信息转换的地图插件可识别数据,包括:

在所述主题资源信息中获取地图插件上各节点对应的主题资源信息,提取所述主题资源信息中的要素数据;所述要素数据包括对应的主题资源的名称、坐标、归属;

在地图组件上新建图层,将各要素数据在所述图层上的对应位置处进行显示,完成主题资源的Web端部署。

进一步地,所述通过所述地图插件在地图上新建图层,将要素数据显示在所述图层上,所述要素数据为通过所述主题资源信息转换的地图插件可识别数据,包括:

通过el-tree组件节点的check事件获取各节点的ID;

通过ID过滤json格式的主题资源信息中符合条件的过滤数据,或者通过包含ID字段的Ajax请求过滤主题数据库获取符合条件的过滤数据;

将所述过滤数据中符合预设属性的数据作为要素数据显示于所述图层上。

第二方面,本发明提供一种Web GIS主题资源管理系统,用于实现上述Web GIS主题资源管理方法,所述系统包括:

资源获取模块,用于获取主题资源图标和存储主题资源信息的配置文件;所述配置文件包括属性配置文件和主题资源列表文件;

雪碧图模块,用于将所述主题资源图标合成一张雪碧图,并计算每个主题资源图标在所述雪碧图中的位置,生成图标位置文件;

数据解析模块,用于对主题资源列表文件进行数据解析,从中获得主题资源信息;

网页搭建模块,用于加载地图插件,在对应的部署页面引入UI依赖和所述属性配置文件,并根据所述图标位置文件将所述雪碧图注入所述地图插件;

要素显示模块,用于通过所述地图插件在地图上新建图层,将要素数据显示在所述图层上,所述要素数据为通过所述主题资源信息转换的地图插件可识别数据。

第三方面,本发明提供一种服务器,包括处理单元、存储单元以及存储在所述存储单元中且被配置为由所述处理单元执行的计算机程序,所述处理单元在执行所述计算机程序时实现如上所述的Web GIS主题资源管理方法。

本发明提供的一种Web GIS主题资源管理方法、系统和服务器,与现有技术相比,其有益效果在于:本发明将主题资源数据信息与项目工程分离,降低了主题资源数据与项目工程的结合度,使得新的主题资源加入时无需对项目进行大的改动即可完成迭代开发,一次开发部署之后只需更新主题资源即可完成后续更新,执行雪碧图服务将各主题资源的图标合成一张雪碧图,减少了网页端对服务器发送请求的次数,降低了网页加载的负担,提升网页性能的流畅度,通过数据解析服务将主题资源数据转换为json格式存储,在无数据库或数据库异常的情境下仍能维持正常的运行,增加了系统的容错率,通过树形结构提升了对主题资源选中和取消操作的便捷性,进一步提升了用户体验。

附图说明

图1为本发明实施例提供的一种Web GIS主题资源管理方法的步骤流程图;

图2为本发明实施例提供的一种Web GIS主题资源管理方法系统的结构框图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

需要说明的是,文中的步骤编号,仅为了方便具体实施例的解释,不作为限定步骤执行先后顺序的作用。本实施例提供的方法可以由相关的服务器执行,且下文均以服务器作为执行主体为例进行说明。

如图1所示,本发明实施例提供一种Web GIS主题资源管理方法,所述方法运行于服务器,包括步骤S11至S15:

步骤S11,获取主题资源图标和存储主题资源信息的配置文件;所述配置文件包括属性配置文件和主题资源列表文件。

上传用于生成树形组织结构的属性配置文件mapTree.json和存储有大量主题资源分布情况的excel格式的主题资源列表文件至服务器。

具体地,mapTree.json文件中的数据格式覆盖el-tree组件渲染树形结构的基本字段:ID、名称、子级和父级,同一主题资源的ID在mapTree.json文件、excel文件以及后续相关文件中的ID保持一致。

上传主题资源图标,将一种或者多种长度和高度一致的主题资源图标上传,图标的存放顺序按照mapTree.json文件中定义的资源类型数据顺序。

通过将存储主题资源信息的配置文件与项目工程解耦的方式,不再将主题资源相关的文件耦合至项目中,降低了配置文件和项目工程的强相关性,保证了后续新增主题资源信息以及修改主题资源相关的配置文件时,将不依赖于项目工程,无需重新编译前端工程重新部署发布,增加了系统稳定性。

步骤S12,将所述主题资源图标合成一张雪碧图,并计算每个主题资源图标在所述雪碧图中的位置,生成图标位置文件。

运行雪碧图服务,引入webpack-spritesmith插件,运行编译命令将所有的主题资源图标合成一张雪碧图。

由于合成雪碧图的主题资源图片等长等高,依赖mapTree.json中主题资源图标所在的数组下标,可以计算出主题资源图标在合成的雪碧图中的具体位置,将各主题资源图标的信息赋值给图标位置文件position.json中的字典数据中,其中value为主题资源图标在雪碧图中的位置,对应的key值为主题资源图标对应的ID。

通过合成雪碧图,可以在一次请求中获取所有的主题资源图标,减少了用户网页加载时,对服务器的请求次数和缓存的图片数量,提高页面性能,增加了页面加载的流畅度。

步骤S13,对主题资源列表文件进行数据解析,从中获得主题资源信息。

运行主题资源数据解析服务,将excel文件中的主题资源信息进行解析和存储。具体地,本实施例提供以下两种可选方式:

(1)、通过xlsx插件将excel内容进行解析,将解析得到的主题资源信息的内容转换成json格式的文件,保存在服务器上,用以通过ID过滤调用。

(2)、通过xlsx插件将excel内容进行解析,将解析得到的主题资源信息的内容存入资源主题数据库,保存在服务器上,用以通过Ajax过滤调用。

excel文件方便保存大批量数据,并且灵活,可支持其他数据源的集成,方便开发人员轻松导入和导出。同时,通过以上两种灵活可选的存储和调用方式,实现了即使在缺少数据库的情景下也能保证业务的正常运行,提高了系统的稳定性。

步骤S14,加载地图插件,在对应的部署页面引入UI依赖和所述属性配置文件,并根据所述图标位置文件将所述雪碧图注入所述地图插件。

加载地图插件Mapbox-GL,在对应的部署页面引入桌面端组件库Element-UI依赖和属性配置文件mapTree.json。

在初始化GIS(Geographic Information System,地理信息系统)地图时,根据图标位置文件position.json,通过地图不同节点的主题资源的ID获取各节点对应的主题资源图标在雪碧图中的位置,从而将雪碧图中的各主题资源图标注入Mapbox-GL中。

优选地,主题资源图标可以作为点击事件的载体,用于在用户点击不同主题资源图标时,显示更详细的主题资源信息,或者跳转至该主题资源对应的网页链接。

使用el-tree组件,对mapTree.json中存储的信息进行加载,用于进行主题资源管理。

el-tree组件中的层级关系,可以将父级节点的选中或者取消传递给所有子级,实现同时选中或者取消,方便操作便于管理。此外,本实施例选用的Mapbox-GL的渲染方式,无需像其它引擎需要在上图时遍历大批量资源数据,将主题资源图标与之一一对应后,得到要素数据,再将要素数据循环处理,一个个进行点上图,因此本实施例使得越大数量的点要素在Mapbox-GL插件上越是渲染效率高。

步骤S15,通过所述地图插件在地图上新建图层,将要素数据显示在所述图层上,所述要素数据为通过所述主题资源信息转换的地图插件可识别数据。

通过地图插件在地图上新建图层,将通过主题资源转换得到的地图插件可识别的要素数据加入图层上显示;具体地,本实施例提供以下两种要素数据的获取方式:

(1)、通过el-tree组件节点的check事件获取各节点的ID,通过ID过滤步骤S13中解析生成的json格式文件,获取符合条件的过滤数据。

(2)、通过el-tree组件节点的check事件获取各节点的ID,通过包含ID字段的Ajax请求过滤主题数据库获取符合条件的过滤数据。

将所述过滤数据中符合预设属性的数据作为要素数据显示于所述图层上;具体地,本实施例中,将过滤数据中,含有表示主题资源类型、特征和经纬坐标的type、features和coordinates属性的数据作为要素数据。

根据要素数据中coordinates值和ID对应的图标位置文件position.json中的value值,即可在GIS对应位置进行显示和调度。

本发明提供的一种Web GIS主题资源管理方法将主题资源数据信息与项目工程分离,降低了主题资源数据与项目工程的结合度,使得新的主题资源加入时无需对项目进行大的改动即可完成迭代开发,一次开发部署之后只需更新主题资源即可完成后续更新,执行雪碧图服务将各主题资源的图标合成一张雪碧图,减少了网页端对服务器发送请求的次数,降低了网页加载的负担,提升网页性能的流畅度,通过数据解析服务将主题资源数据转换为json格式存储,在无数据库或数据库异常的情境下仍能维持正常的运行,增加了系统的容错率,通过树形结构提升了对主题资源选中和取消操作的便捷性,进一步提升了用户体验。

本发明实施例还提供一种Web GIS主题资源管理系统,用于执行如上所述的一种Web GIS主题资源管理方法,图2为本发明实施例的系统结构框图,所述系统包括:

资源获取模块21,用于获取主题资源图标和存储主题资源信息的配置文件;所述配置文件包括属性配置文件和主题资源列表文件。

雪碧图模块22,用于将所述主题资源图标合成一张雪碧图,并计算每个主题资源图标在所述雪碧图中的位置,生成图标位置文件。

数据解析模块23,用于对主题资源列表文件进行数据解析,从中获得主题资源信息。

网页搭建模块24,用于加载地图插件,在对应的部署页面引入UI依赖和所述属性配置文件,并根据所述图标位置文件将所述雪碧图注入所述地图插件。

要素显示模块25,用于通过所述地图插件在地图上新建图层,将要素数据显示在所述图层上,所述要素数据为通过所述主题资源信息转换的地图插件可识别数据。

本发明实施例提出的系统的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。上述系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于服务器中的处理单元中,也可以以软件形式存储于服务器中的存储单元中,以便于处理单元调用执行以上各模块对应的操作。

本发明实施例还提供了一种服务器,所述服务器包括处理单元、存储单元以及存储在所述存储单元中且被配置为由所述处理单元执行的计算机程序,所述处理单元在执行所述计算机程序时实现如上所述的Web GIS主题资源管理方法。

优选地,所述计算机程序可以被分割成一个或多个模块/单元(如计算机程序1、计算机程序2、……),所述一个或者多个模块/单元被存储在所述存储单元中,并由所述处理单元执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述服务器中的执行过程。

所述存储单元主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等,数据存储区可存储相关数据等。此外,所述存储单元也可以是其他易失性固态存储器件。

需要说明的是,上述服务器可包括,但不仅限于,处理单元、存储单元,本领域技术人员可以理解,上述服务器结构仅仅是所述服务器的示例,并不构成对本发明所述服务器的限定,可以包括更多或更少的单元,或者组合某些单元,或者不同的单元。

综上,本发明实施例提供的一种Web GIS主题资源管理方法、系统和服务器,将主题资源数据信息与项目工程分离,降低了主题资源数据与项目工程的结合度,使得新的主题资源加入时无需对项目进行大的改动即可完成迭代开发,一次开发部署之后只需更新主题资源即可完成后续更新,执行雪碧图服务将各主题资源的图标合成一张雪碧图,减少了网页端对服务器发送请求的次数,降低了网页加载的负担,提升网页性能的流畅度,通过数据解析服务将主题资源数据转换为json格式存储,在无数据库或数据库异常的情境下仍能维持正常的运行,增加了系统的容错率,通过树形结构提升了对主题资源选中和取消操作的便捷性,进一步提升了用户体验。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通计数人员来说,在不脱离本发明计数原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。

技术分类

06120116581828