SuperMap iDesktopX扩展开发之GP算子扩展

news2024/11/25 11:03:43

作者:dongyx

SuperMap iDesktopX是超图研究院推出的一款跨平台的桌面GIS软件,兼容Windows和Linux,同时iDesktopX也采用的是插件式扩展开发框架,支持定制开发。
使用iDesktopX定制开发有以下优势:
⚫ 采用 Swing 图形界面框架,封装 60+GUI 控件,便于用户调用;
⚫ 通过配置文件进行界面配置与管理,无须编程;
⚫ 支持 Java、Python 两种语言扩展定制;
⚫ 可定制开发界面功能及可视化的地理处理建模工具;
⚫ 使用 IDEA 自动管理并部署依赖,实现一键部署。
在这里插入图片描述
一、开发工程配置:
SuperMap iDesktopX 提供两种扩展开发工程的配置方式:
1)推荐方式,直接通过“视图”选项卡中的新建二次开发工程功能,快速构建二次开发工 程。该方式高效便捷,无需手动添加桌面依赖,可以选择开发工程存放路径、自定义项目参数;并且还可导入二次开发示例代码,方便用户快速进行扩展开发。
2)其他方式,则是通过打开扩展开发示例模板的方式,需要手动添加依赖。
1.1.1 推荐方式
1.新建二次开发工程:视图->新建二次开发工程,在弹出框中设置工程名称、包名、版本等信息,选择扩展开发模板类型为GPA,该模板用于扩展GPA算子。
在这里插入图片描述
2.在IDEA中打开刚刚新建好的二次开发工程:如下图所示,SampleCode为新建工程,若勾选了导入二次开发示例代码,工程中还会加载二次开发示例模板SampleCodeTemplates目录。
在这里插入图片描述
3.编译:单击工具栏中的Run或者Debug按钮,编译后自动启动SuperMap iDesktopX。启动后工具箱中会增加GPA工具示例组,其中包含了删除重复点和设置坐标系两个示例工具。
在这里插入图片描述
1.2.1 其他方式
安装IDEA后,需打开扩展开发的工程模板SampleCode并进行配置,详细说明如下:
1.打开模板工程:IDEA->File->Open-> 选 择 SuperMap iDesktopX 产品包
\templates\SampleCode 目录,打开扩展开发示例模板工程。
2.添加桌面依赖:File->Project Structure->Libraries->添加->JAVA,在弹出的 Select
Library Files 对话框中,同时选中以下 4 个目录,单击 OK 按钮后,选择 SampleCode,即可
将桌面依赖添加至二次开发插件。
1)%iDesktopX 产品包%/bin/
2)%iDesktopX 产品包%/bundles/idesktop_bundles/
3)%iDesktopX 产品包%/bundles/require_bundles/
4)%iDesktopX 产品包%/lib/
二、GPA算子扩展
以推荐方式创建的GPA模板扩展开发工程中提供了完整的工作流实现代码DesktopProcessSampleCode。GPA扩展开发类需要继承算子模型基类AbstractDesktopProcess来实现对应的方法,需注意以下几点
1.算子名称
算子构造函数第一句必须调用super方法,方法参数为算子name,同一个包中算子名称不能重复,name为一个唯一值。如下图所示:

  super("DeleteDuplicatePoints");

2.构造输入参数
以示例代码为例讲述如何构造输入参数:
在这里插入图片描述

⚫ sourceDataset:输入数据的 key,一个功能可能有多个输入数据,用于标识输入数
据;
⚫ DatasetVector.class:限制输入的值类型,本文示例是点数据集删除重复点,所提输
入的值类型是 DatasetVector.class。
获取输入数据需要调用相应的代码语句,获取输入参数的数据的示例代码如下,通过前面
构造的输入参数对象变量调用 getValue 方法即可。
在这里插入图片描述

3.构造输出参数
以示例代码为例讲述如何构造输入参数:
在这里插入图片描述

⚫ resultDataset:是输出参数的 key,标识输出参数,因为一个功能可能有多个输出参
数;
⚫ DatasetVector.class:限制输出的值类型,本文示例是点数据集删除重复点,所提输
出的值类型是 DatasetVector.class。
输出数据的需要调用相应的代码语句,输出数据的示例代码如下,通过前面构造的输出参
数对象变量调用 setValue 方法即可。
4.功能界面定制
SuperMap iDesktopX 封装了 70 余个控件,如数据集控件、字段选择控件、单选框、复
选框等,用户在配置功能对话框界面时,直接调用即可。对话框界面配置的示例代码如下:
在这里插入图片描述
5.childExecute方法
执行功能的代码放在childExecute方法中,且以boolean类型返回执行结果。当执行失败是返回false,执行成功时返回true。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/587838.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第五十八天学习记录:C语言进阶:文件操作1

什么是文件 在程序设计中,一般有两种文件:程序文件、数据文件 程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.e…

TM7707 评估前做的功课

目录 硬件 模拟输入范围 转换速度与有效位数 数字电平匹配 建立时间 基准电压 软件 寄存器 硬件 MCU 3.3V 平台; ADC mclk 2.4576mhz 模拟输入范围 在非缓冲模式下,共模输入范围是从 GND 到 V DD 。模拟输入电压的绝对值处在 GND-30mV 和 …

SAP不停机做client copy ,把800数据覆盖到600,导致在600很多单据创建不出来

不停机做client copy ,把800数据覆盖到600,但是因为没有停机,导致在800还在产生单据,以至于600的 number range 不对,很多单据都能保存成功但是查寻不到 涉及到的单据(包括但不限于) 采购订单 生…

GPT-4 太贵?试试这 6 个免费且优秀的替代方案

大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、读书和自媒体。 目录 AutoGPT - 直接从您的浏览器使用 Bard - Google AI 的免费工具。 Bing - New Bing 已经支持GPT-4, Claude - Anthropic对标ChatGPT Hugging…

适合每个人的热门CSS工具

本文首发于微信公众号:大迁世界, 我的微信:qq449245884,我会第一时间和你分享前端行业趋势,学习途径等等。 更多开源作品请看 GitHub https://github.com/qq449245884/xiaozhi ,包含一线大厂面试完整考点、资料以及我的…

Jenkins+Gogs自动远程Docker环境部署django项目

1.Jenkins安装或确认必要插件 jenkins安装或确认必要插件gitlab、Publish Over SSH。 Dashboard--Manage Jenkins--Plugin Manager 2.Publish Over SSH配置 jenkins配置SSH连接django服务部署的对象服务器 Dashboard--Manage Jenkins--Configure System,找到 Publ…

LIS和LIMS有什么区别?

术语“实验室信息系统”(LIS)和“实验室信息管理系统”(LIMS)经常会引起混淆,并且倾向于互换使用这些术语。通常,术语“ LIS”是指用于管理医院或医疗环境中的临床诊断测试的系统。另一方面,LIM…

基于C#的串口扫描枪通信实战

今天搞大事,观众们动起来,搞事的目的是 掌握串口通信及winform开发技术 硬件设备:1、串口激光扫描枪,注意是串口,不是USB口 2、USB转串口的连接线一根,如图连接所示 3、USB扩展器一个,如果你电…

图片优化: CssSprites与Base64编码

文章目录 1 css sprites1.1 CSS Sprites是什么1.2 为什么需要css sprites1.3 优势1.4 使用原理 2 图片Base64编码 1 css sprites 1.1 CSS Sprites是什么 CSS Sprites是一种网页图片应用处理方式。 又被解释为: CSS精灵CSS图像拼合CSS贴图定位CSS图片精灵CSS雪碧图…

快六一啦,学习CSS3实现一个冰淇淋动画特效

快六一啦,小时候顶多吃个小冰棍,或者是那种小冰袋,现在的小朋友真是好,动不动就能吃到冰淇淋,今天用CSS3实现一个冰淇淋的动画特效吧 目录 实现思路 桶身的实现 冰淇淋身体的实现 五彩颗粒的实现 HTML源码 CSS3源…

17 张程序员专属壁纸推荐

1、三思后再写代码!!! 2、从世界上搜索喜欢你的人!!! 3、代码没写完,哪里有脸睡觉!!! 4、程序员的 Home 键!!! 5、编程是…

【完整项目开发】Springboot+vue教学材料管理系统定制开发

Springbootvue 的专业建建设材料管理系统。 **大家好,今天分享最近做的一套系统。**起因源于小伙伴的需求 文末有的获取方式,如需定制系统,需求发来,我为你分忧,搞起 一、 项目介绍 基于各个专业,对教…

代码随想录算法训练营day56 | 583. 两个字符串的删除操作,72. 编辑距离,编辑距离总结篇

代码随想录算法训练营day56 | 583. 两个字符串的删除操作,72. 编辑距离,编辑距离总结篇 583. 两个字符串的删除操作解法一:动态规划解法二:计算最长公共子序列,然后用数组长度减掉子序列长度 72. 编辑距离解法一&#…

界面组件DevExpress ASP.NET Core v22.2 - UI组件升级

DevExpress ASP.NET Core Controls使用强大的混合方法,结合现代企业Web开发工具所期望的所有功能。该套件通过ASP.NET Razor标记和服务器端ASP.NET Core Web API的生产力和简便性,提供客户端JavaScript的性能和灵活性。ThemeBuilder工具和集成的Material…

【操作系统】01.操作系统概论

操作系统的发展历史 未配置操作系统 手工操作阶段 用户独占全机,人机速度矛盾导致系统资源利用率低 脱机输入输出方式 为了缓解主机cpu和IO设备之间速度不匹配的矛盾,出现了脱机IO技术 在外围机的控制下,通过输入设备,将数据输…

Spring事务和事务的传播机制

一、为什么需要事务 1.1事务定义 将一组操作封装成一个执行单元,要么全部成功要么全部失败。 1.2为什么要用事物 例如转账分为两个操作: 第⼀步操作:A 账户 -100 元。第⼆步操作:B 账户 100 元。 如果没有事务,第…

脱岗监测预警系统 yolov5

脱岗监测预警系统可以通过pythonyolov5网络模型深度学习算法,脱岗监测预警算法对现场人员岗位进行实时监测,自动识别是否存在脱岗行为,并及时发出警报。Yolo意思是You Only Look Once,它并没有真正的去掉候选区域,而是…

2023安卓逆向 -- 抓包环境设置(Charles+Postern)

一、下载Charles并设置代理 1、下载地址,一路下一步即可安装 https://www.charlesproxy.com/ 2、代理设置,抓取所有ip及所有端口的数据包,点击Proxy,选择SSL Proxying Settings 3、点击Add,Host和Port都填写*&#x…

chatgpt赋能python:Python中的升序降序sort解析

Python中的升序降序sort解析 在 Python 开发中,sort 方法是非常常用的方法,它可以对包含数字或字符串的列表进行排序,其中有两种排序方式,分别是升序和降序。本篇文章将会深入探讨 Python 中的 sort 方法,着重介绍升序…

【回顾经典AI神作】卷积神经网络CNN架构系列:LeNet,AlexNet,VGG,GoogLeNet,ResNet

卷积神经网络(CNN或ConvNet)是一种特殊的多层神经网络,旨在以最少的预处理直接从像素图像中识别视觉模式。ImageNet项目是一个大型视觉数据库,设计用于视觉对象识别软件研究。ImageNet 项目举办年度软件竞赛,即 ImageNet 大规模视觉识别挑战赛 (ILSVRC),软件程序竞相正…