一文了解SuperMap iDesktop Java定制开发

发布时间:2019 年 11 月 06 日  文/端产品研发中心 秦丽娟 刘晓妮
导读:SuperMap iDesktop Java是超图的一款跨平台桌面GIS软件,兼容Windows和Linux。Java桌面采用插件式扩展开发框架,支持Java、Python两种语言扩展开发。今天,我们将为大家解密Java桌面中提供了哪些可以定制开发的内容,以及如何进行定制开发。

  SuperMap iDesktop Java(简称Java桌面)是超图研究院自2015年就推出的一款跨平台的桌面GIS软件。Java桌面具有兼容Windows和Linux,兼具最新IT技术和地理学技术的特点。经过四年多的发展和实践,Java桌面越来越成熟,应用也越来越多,功能已经完全覆盖并超越了传统GIS桌面。同时,Java桌面也采用的是插件式扩展开发框架,支持定制开发。

  使用Java桌面定制开发有以下优势:

  1、采用Swing图形界面框架,封装60+GUI控件,便于用户调用;

  2、通过配置文件进行界面配置与管理,无须编程;

  3、支持Java、Python两种语言扩展定制;

  4、可定制开发界面功能及可视化建模工具;

  5、使用IDEA和Maven自动管理并部署依赖,实现一键部署。

  下面就来详细介绍Java桌面中提供的可定制开发内容,以及如何进行定制开发。

  开发环境配置

  Java桌面的扩展开发环境配置十分简单,只需在Windows或Linux系统中部署JDK 1.8环境,安装Java开发工具(推荐IDEA),即可进行扩展开发。如图1所示。

  除此之外,Java桌面也提供了扩展开发实例模板工程SampleCode,只需要在配置文件中进行简单的UI配置,就可实现扩展开发。

  Java桌面内置Python运行环境,提供Python IDE,因此,基于Python的轻量级二次开发也很方便。

  开发环境配置完成后,就可以基于Java桌面进行定制开发,搭建自己的应用系统。

  界面功能定制

  Java桌面与经典的跨平台QT桌面不同,采用的是RibbonUI的图形界面,通过配置文件(*.config)实现界面的布局、构建和绑定功能代码(一般为CtrlAction类)。

  因此,基于Java桌面开发的应用系统界面,只需要通过修改配置文件的方式来实现系统界面的布局,避免了书写大量的界面代码,方便又快捷。

  Java桌面的界面配置主要分为:功能区、状态栏、开始菜单、右键菜单、浮动窗口、工具箱、快速访问工具栏配置七类。

  Java桌面为每一个界面元素提供一个标签。向界面中添加界面元素时,只需在配置文件中完成该界面元素对应标签的添加和设置。添加多个界面元素时,就添加多个界面元素的标签,并对标签的属性进行设置。这样就很方便地将例如按钮、文本框、组合框或更复杂的元素添加到基础框架中,并配置各个界面元素所实现的功能。如图3所示。

  工具箱定制开发

  Java桌面的工具箱中,已经提供了240+GIS工具。这些工具,不仅可以直接使用,也可以通过Java语言、Python语言进行扩展,结合可视化建模使用,实现一键化的操作。

  · 使用Java语言定制工具

  使用Java语言进行工具定制,需要继承模型基类(MetaProcess类)来实现对应的方法。定制的工具既可单独执行,也可通过可视化建模与其他工具结合使用,在开发时,需要建立与其他工具的连接关系,即支持数据的输入与输出。

  在功能实现方面,SampleCode中提供了工具功能的完整示例代码(MetaProcessRegionTrunkToCenterLine类)。

  通过Java语言开发时,需注意以下四步:1、添加输入节点,并获取输入数据;2、添加输出节点,并设置输出数据;3、定制功能对话框界面;4、execute方法。结合代码的图示如图4所示。

  另一方面,界面配置方式则灵活多变,既可以配置到Ribbon、右键菜单,也可以配置到工具箱,与可视化建模结合使用。

  1、配置到工具箱:工作流配置到工具箱的相关配置放置在ProcessManager的< ProcessGroup >…标签中。如图5所示。

  2、配置到Ribbon:开发的工具也可以配置到Ribbon界面中,通过默认的CtrlA ctionProcessBase进行加载,配置成button控件的示例代码如图6所示:

  · 使用Python语言定制工具

  Python是一种简单易学、功能强大的编程语言,在云计算、大数据挖掘、人工智能等领域有着广泛的应用,且Python与GIS也有着很好的契合度。Java桌面内置了Python运行环境,无须额外安装Python包,即可通过Java桌面直接执行Python脚本,进行Python轻量级二次开发。

  工具箱中的部分工具支持查看Python接口,提供详细的Python接口的语法、功能介绍以及各个参数的说明,为Python语言开发提供便利。如图7所示。

  Java桌面支持通过内置的IDE编写Python脚本创建工具,也支持通过加载Python文件(*.py)的方式创建工具。在执行Python工具的同时,输出区会有对应的Python代码输出,方便及时跟踪代码的执行情况。如图8所示。

  Java桌面提供的Python工具不仅可以直接运行,同时还支持Python工具的可视化建模。可以直接把Python工具添加到模型画布中,并与其他工具连接,构建自动化的数据生产处理等工作流程。同时可视化建模中的工具支持导出为Python脚本文件,便于重用。

  使用Python二次开发

  上文讲述了使用Python语言定制工具箱中的工具,与可视化建模一起集成使用。除此之外,也可以使用Python语言,调用Java桌面集成的数据处理、拓扑、插值、邻近分析等众多SuperMap iObjects Python功能接口定制开发,实现更多符合业务需求逻辑的功能。

  此外,Python IDE和Java桌面做到了数据的互访问,在IDE中可以直接调用Java桌面打开数据,IDE的执行结果支持保存到数据源中,可以在地图、场景上进行可视化显示,执行结果一目了然。

  结语

  本文从Java桌面的开发环境配置说起,介绍了Java桌面中的界面功能定制、工具箱定制,以及使用Java语言、Python语言定制开发。通过本文的叙述,想必您已经了解了Java桌面中定制开发的相关内容。如果你还想进一步的掌握这些知识点,欢迎下载SuperMap iDesktop Java桌面(下载地址:http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx,或扫描二维码),定制自己的应用系统。

版权所有© 1997-2019 中国科学院地理信息产业发展中心 《超图通讯》编辑部