网站首页  词典首页

请输入您要查询的论文:

 

标题 设计模式实现ECharts在GIS中的快速应用
范文

    谢祎 杨建钦 岳翔 呼和

    

    

    

    摘要:针对服务GIS平台,本文研究了GIS结合ECharts实现统计图功能的技术与方法。着重阐述了通过两种设计模式重新构造创建和调用插件接口,并提出了设计重构接口的原则和思路。最后通过项目实践验证了在这些原则思路在GIS平台中的推广应用中的效果及意义。

    关键词:海洋石油;GIS平台;ECharts;设计模式

    中图分类号:TP391? 文献标识码:A

    文章编号:1009-3044(2019)24-0018-02

    开放科学(资源服务)标识码(OSID):

    基于纯Web前台技术的GIS平台作为一种跨平台、可运行于移动设备的新型可视化工具,目前在海洋石油很多系统中得到了广泛的应用,为海洋石油中下游信息化提供了强大的GIS图形化支撑。统计图以其形象具体、简明生动、通俗易懂、一目了然的特点成在很多信息化应用中成为必备的功能。在海洋石油使用GIS平臺的众多应用中都提出了对统计图功能的需求。

    本文介绍了利用软件设计模式中的工厂及外观模式对现目前流行的ECharts统计图开源代码包进行重新包装设计,为功能使用者提供能方便融入现有GIS平台、针对业务逻辑的、简单易用的调用接口,为现有系统使用开源代码扩展新功能提供了一种成熟可行的思路。

    1 研究思路及实现步骤

    1.1 研究思路

    GIS平台作为一个跨专业、多应用和集中展示的海洋石油专业业务的综合工作平台,服务于海洋石油勘探开发业务的科研、管理及决策工作。该平台在海油勘探、开发等专业已经有很好地应用,并取得了很好的效果。基于多个应用需求,GIS急需在平台中加入统计图功能。经过调研,ECharts开源库成为最优方案。ECharts是一个当前流行功能强大的统计图表可视化开源功能库,使用纯Web前端技术实现,可以流畅地运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),提供直观,交互丰富,可高度个性化定制的数据可视化图表以及常规的折线图、柱状图、散点图、饼图、K线图,非常契合当前GIS平台对统计图功能的使用要求。实现统计图功能的思路就是将ECharts开源包融合进GIS平台,并给统计功能使用者提供简单易用的调用接口。

    1.2 面临的问题

    由于ECharts功能强大,覆盖领域较广,导致其参数系统设置复杂,学习使用较为困难,需要有经验的开发者经过较长时间习才能掌握。另外ECharts还需要和现有GIS平台融合,这需要二次开发人员对GIS平台本身有较深入了解,这在实际应用中就大大增加了使用难度,延长了开发周期,增加了开发成本,不利于其在各专业系统的推广应用。为了解决上述问题,首先要实现GIS平台和ECharts整合,让后续使用该功能的开发者无须关注ECharts融入GIS平台的细节。第二,对于最需要花时间进行学习设置的复杂参数进行接口简化,让后继开发者只需关注和实际业务逻辑相关的统计数据、标题等参数设置。

    2 实现步骤

    2.1 使用工厂模式对创建过程进行封装

    对于ECharts的整合问题,我们决定采用软件设计中的工厂模式,工厂模式是一种实例化对象模式,是用工厂方法代替new操作的一种模式,在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,而是通过使用一个共同的接口来返回新创建的对象。

    在具体实现中,创建能被GIS使用的ECharts实例的复杂逻辑被隐藏在创建工厂中,二次开发人员在创建ECharts只需要编写简单代码,如下所示:

    var myEChart = L.echartsFactory.createInstance([30, 118], [160, 160], map, "marker002");

    调用者只需指定要显示的位置、大小、以及可后继对其进行操控的ID,即可创建出已经和GIS平台融合好的ECharts实例。使用者完全不用关注ECharts和GIS平台的融合问题。

    2.1.2 使用外观模式重新设计调用接口

    对于ECharts原有功能调用接口过于复杂,需要大量时间学习才能掌握的问题。我们运用外观模式对调用接口进行了重新封装设计。外观模式(Facade Pattern)属于结构型设计模式,它向现有的系统添加一个接口,来隐藏系统的复杂性,降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。这种模式涉及一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

    如图1所示,在原有设计中,用户调用系统功能时,每个用户对各子系统以及子系统间的相互关系都要进行学习了解,这直接导致开发难度加大,开发周期变长。且用户程序和各系统间形成紧耦合,不利于将来的系统升级维护。

    图2的方案用外观模式加了统一的高层接口,该高层接口负责和子系统进行交互,每个用户不必需要了解子系统的细节,只需调用这个经过简化的面向业务逻辑高层接口就可以。在GIS项目的具体实施中,我们给ECharts设计添加了外层装饰类(EChartsDecorator),对外只提供设置统计数据、设置统计图标题、显示、关闭等和业务逻辑相关的接口。调用者不必关注ECharts内部技术细节,让开发人员很短时间内就能学习掌握,大大提高了开发效率。 示例代码:

    myEChart.setTitle('我的项目图1'); //设置统计图标题

    myEChart.setXAxis(['地质储量(公司)', '地质储量(国家)', '技术可采(公司)', '技术可采(国家)', '经济可采(公司)', '经济可采(国家)', '经济可采(上市)']); //设置X轴各列名称

    var series = [ //统计数据

    { name: 'P1', data: [xxxxxx.x, xxxxxx.xx, xxxxxxx.xx, xxxxx.xx, xxxxx.xx, xxxxx.xx, xxxxx.xx],},

    { name: 'P2', data: [xxxxxx.xx, xxxxx.xx, xxxxx.xx, xxxxx.xx, xxxx.x, x, xxxx.xx], },

    { name: 'P3', data: [xxxxx.xx, xxxxx.xx, xxxxx.xx, xxxx.xx, x.xx, x, xxx.xx], },

    ];

    myEChart.setSeriesData(series); //设置统计数据

    myEChart.showChart(); //开始显示统计图

    如上例代码所示,后续开发者只需提供具体的统计图数据、统计图名称、坐标名称等和用户业务逻辑相关的参数,即可实现统计图功能。调用接口直观易懂,开发人员很容易理解掌握,短时间内就可实现项目需求,方便了其在各专业项目的推广使用。

    2.2 应用效果

    如图3所示,GIS平台主界面的是海洋石油海域GIS遥感底图。粉红色多边形是加载的油气田空间对象,上面显示的則是其生产数据相关的统计图(虚构数据)。目前GIS平台的统计功能已应用于公司的油气储量评估及管理系统,并取得了良好的应用效果。

    3 应用意义

    针对海洋石油勘探专业的需求目标,为原有的GIS添加了统计图功能接口。其重要的实用意义在于:

    1) GIS平台有了浏览空间对象的统计图功能,大大增强了GIS平台满足应用需求的能力。

    2)并且通过此次实践,摸索出了一套简化复杂接口的模式。大大缩短了未来开发者学习使用GIS统计功能的周期,方便了GIS平台的推广应用,这种设计原则非常适合应用于GIS平台未来新功能接口的开发。

    参考文献:

    [1] 张云飞,张钦,杨建钦,等. 基于空间对象的公共GIS模型及其在海洋石油信息化中的应用.中国海上油气,2009 21(3); 211-214.

    [2] ECharts2.0 官网[EB/OL]. http://echarts.baidu.com/echarts2/index.html

    [3] [日] 结城浩. 图解设计模式[M].北京:人民邮电出版社,2017.

    【通联编辑:梁书】

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2024/12/23 2:25:16