浅谈SuperMap iDesktopX桌面扩展开发

本文档详细介绍了如何对SuperMapiDesktopX10.1.0进行定制开发,包括修改软件标题、配置开发环境、创建扩展功能以及以缓冲区分析为例的实战步骤。通过示例代码和配置文件说明,开发者可以快速掌握二次开发流程。
摘要由CSDN通过智能技术生成

作者:dongyx

SuperMap iDesktopX是业界首款跨平台全功能桌面 GIS 软件,支持主流Linux操作系统,突破了专业桌面 GIS 软件只能运行于 Windows 环境的困境。提供空间数据生产及加工、空间大数据管理分析、可视化建模、服务发布等功能,可用于数据生产、加工、处理、分析以及制图。现在很多客户使用的场景不同,所以很多客户想利用扩展开发定制开发出属于自己应用场景的桌面软件。接下来我就谈一下如何对SuperMap iDesktopX 10.1.0版本进行定制开发。
SuperMap iDesktopX 是通过SuperMap iObjects Java 组件构建的一款企业级、插件式、跨平台桌面GIS应用与开发平台,可通过Java语言进行扩展开发。我们的产品目录也给大家提供了扩展工程模板,模板位于安装目录/templates/sampleCode文件夹,是扩展开发示例模板工程。
一、修改iDesktopX桌面软件标题
1.文件–选项–环境中修改iDesktopX标题
在这里插入图片描述
2.通过修改配置文件的方式修改iDesktopX标题,修改安装目录/configuration/SuperMap.Desktop.Parameter.xml文件
在这里插入图片描述
二、开发环境配置
1.开发工程配置
1.1 在IDEA开发平台中打开模板工程。模板位于安装目录/templates/sampleCode文件夹
1.2 配置jdk环境:设置工程的jdk环境为1.8
1.3 添加桌面依赖,点击File–project Structure, 在弹出框中依次选中 Global Libraries->添加->JAVA,在弹出的 Select Library Files 对话框中,同时选中以下 4 个目录,单击 OK 按钮后,
选择 develop,即可将桌面依赖添加至二次开发插件。

  1. %iDesktopX 产品包%/bin/
  2. %iDesktopX 产品包%/bundles/idesktop_bundles/
  3. %iDesktopX 产品包%/bundles/require_bundles/
  4. %iDesktopX 产品包%/lib/
    1.4 工程编译成功运行程序可以自动启动SuperMap iDesktopX,启动后可以“开始”选项卡中会增加二次开发分组,包含了二传开发示例、删除重复点两个功能,这样就表示环境配置成功
    2.工程模板介绍
    示例模板工程即 SampleCode 工程,其中 Develop module 就是我们的开发 module
    2.1 SampleCode Module
    SampleCode Module 主要通过此 module 的 pom 文件管理远程仓库地址及所有子
    module(自定义插件),不实现任何具体功能。详情参见 SampleCode 的 pom.xml 文件。注意:jar 生成路径不可修改。
    2.2 Develop module
    Develop module 是扩展开发示例 module,内部主要的类有三个,分别为 MyStartUp、
    DevelopPlugin、CtrlActionSampleCode。
    2.2.1MyStartUp
    MyStartUp 是二次开发启动的入口。
    2.2.2DevelopPlugin
    DevelopPlugin 是插件类必须实现,其命名规则为 module name+“Plugin”,必须继承
    实现 AbstractPlugin 类,否则 Develop module 所有功能都无法使用,具体实现方式参见
    DevelopPlugin 类。
    2.2.3CtrlActionSampleCode
    CtrlActionSampleCode 是示例开发类。CtrlActionSampleCode 类中包含了用于响应控
    件事件触发时所要执行的内容,即与 UI 控件绑定的类,该类必须继承自 CtrlAction 类。具
    体实现方式参见 CtrlActionSampleCode 类。
    2.2.4配置 CtrlAction
    实现功能之后,就需要在相应配置文件中进行配置,跟 UI 绑定。即将功能对应的
    CtrlAction 类名称写到 module 对应配置文件中相应控件的 onAction 属性中。
    注意:一个 module 对应一个配置文件,配置文件必须存在且正确配置,否则无法加载对
    应 module。配置文件位于%模块目录%\src\main\resources\文件夹下。(自定义启动
    module 不需要配置文件,只有界面功能需要配置文件)
    示例配置文件参见 SuperMap.Desktop.Develop.config
    在这里插入图片描述
    三、以缓冲区分析为例
    1.在Develop module中创建一个buffer的包名和一个buffer类。buffer类必须继承CtrlAction类。在run函数写缓冲区分析的业务代码
//获取当前打开的工作空间
Workspace workspace = Application.getActiveApplication().getWorkspace();
Dataset dataset = workspace.getDatasources().get(0).getDatasets().get("New_Line");
//新建一个地图窗口
IFormMap formMap = (FormMap) FormUtilities.fireNewWindowEvent(WindowType.MAP,"dyx");
MapControl mapControl = formMap.getMapControl();
mapControl.getMap().getLayers().add(dataset,true);
DatasetVectorInfo datasetVectorInfo = new DatasetVectorInfo();
datasetVectorInfo.setEncodeType(EncodeType.NONE);
datasetVectorInfo.setType(DatasetType.REGION);
datasetVectorInfo.setName("buffer");
DatasetVector result = workspace.getDatasources().get(0).getDatasets().create(datasetVectorInfo);
BufferAnalystParameter bufferParameter = new BufferAnalystParameter();
bufferParameter.setEndType(BufferEndType.FLAT);
bufferParameter.setLeftDistance(100);
bufferParameter.setRightDistance(100);
DatasetVector datasetVector = (DatasetVector)dataset;
//调用创建矢量数据集缓冲区方法
BufferAnalyst.createBuffer(datasetVector,result,bufferParameter,false,true);
mapControl.getMap().getLayers().add(result,false);
mapControl.getMap().refresh();

2.配置CtrlAction
在这里插入图片描述
3.在IDEA开发平台中运行该工程,启动SuperMap iDesktopX桌面,运行结果如下:
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值