博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈SuperMap iDesktopX桌面扩展开发
阅读量:4163 次
发布时间:2019-05-26

本文共 3179 字,大约阅读时间需要 10 分钟。

作者: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桌面,运行结果如下:
在这里插入图片描述

转载地址:http://vipxi.baihongyu.com/

你可能感兴趣的文章
HTML5学习之——HTML 5 音频
查看>>
HTML5学习之——HTML 5 拖放
查看>>
HTML5学习之——HTML 5 Canvas vs. SVG
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 Web Workers
查看>>
HTML5学习之——HTML 5 Canvas
查看>>
HTML5学习之——HTML5 内联 SVG
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
SVG学习之——HTML 页面中的 SVG
查看>>
SVG 形状学习之——SVG 矩形<rect>
查看>>
SVG 形状学习之——SVG圆形
查看>>
SVG 滤镜学习之——SVG 滤镜
查看>>
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
让代码变得更优雅-Lombok
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
Ubuntu10.10 CAJView安装 读取nh\kdh\caj文件 成功
查看>>
kermit的安装和配置
查看>>
vim 配置
查看>>