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

news2024/11/24 11:07:50

作者: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/588290.html

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

相关文章

VM虚拟机仿真网络问题

在电子数据取证中,拿到一个镜像需要仿真的时候,经常会遇到网络问题。尤其是Linux服务器镜像,例如centos操作系统的镜像,一般镜像会有固定IP设置,仿真起来后,系统与本机不能建立连接,不能连接互联…

VSCode远程连接Ubuntu使用LLDB调试程序

VSCode已经具有远程开发的能力,可以使用SSH连接到Linux/MacOS进行远程开发,包括编译与调试,只需要安装Remote Development插件即可,如果想使用CMake管理项目,则需要将VSCode的CMake以及CMake Tools插件安装在远程机器上…

SpringBoot自定义打印横幅

众所周知,springboot项目启动的时候会打印横幅,横幅内容就是spring; 而spring boot提供了一个Banner接口用于处理启动横幅,默认情况下启动会打印如下信息 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( (…

分布式系统

一.分布式理论基础 1.CAP理论 CAP定理是分布式系统中的重要理论,在一个分布式系统中最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的…

以太网驱动的流程浅析(五)-mii_bus初始化以及phy id的获取

【硬件环境】 Imx6ul 【Linux kernel版本】 Linux4.1.15 【以太网phy】 Realtek8201f 1.1. 以太网驱动probe流程 1.1 mii_bus初始化以及phy id的获取 然后进行mii的一些初始化fec_enet_mii_init(pdev); 主要是对struct mii_bus这里的成员进行初始化 并且会做注册mdiobus的…

小笔记-简单但够用系列_jupyter notebook 的重新安装问题

文章目录 目的目标步骤 目的 做程序开发时,想到 jupyter notebook 的浏览器交互式执行,决定再次启用放置许久的 jupyter notebook。 但太久没有执行的 jupyter notebook 在打开页面有一旦打开或创建新的 python,就自动报错退出。 使用过往经…

Blender UV展开流程

目录 1. UV1.1 blender默认物体1.2 创建物体1.3 UV参考图1.4 标记缝合边1.5 UV拉伸1.6 孤岛模式 1. UV 1.1 blender默认物体 默认物体已经自动生成UV 在UV编辑工作区,编辑模式,全选物体在左边自动展开UV 在物体数据属性-UV贴图-存在默认的UV贴图&#…

华为OD机试真题B卷 Java 实现【输入整型数组和排序标识,对其元素按照升序或降序进行排序】,附详细解题思路

一、题目描述 输入整型数组和排序标识,对其元素按照升序或降序进行排序 数据范围: 1≤n≤1000 ,元素大小满足 0≤val≤100000 。 二、输入描述 第一行输入数组元素个数;第二行输入待排序的数组,每个数用空格隔开;第三行输入一个整数0或1。0代表升序排序,1代表降序排序…

UOS桌面系统使用RLinux恢复数据

UOS桌面系统使用RLinux恢复数据 一、工具介绍二、注意事项三、准备四、制作live系统启动盘五、拷贝文件六、进入live系统一、工具介绍 R-Linux 是一款用于 Linux 和某些 Unixes 操作系统 Ext2/Ext3/Ext4 FS 文件系统的免费文件恢复实用工具。R-Linux 与 R-Studio 使用相同的 I…

如何使用ArcGIS进行选房分析

无论是城市规划布局研究,还是为自己找一个心仪的住房,都需要综合考虑购物、医疗、教育和休闲等诸多因素,若单纯依靠人力去寻找,十分的麻烦和耗时。 此时ArcGIS强大的分析功能就凸显了出来,我们可以通过空间上的距离关…

chatgpt赋能python:Python中同一键可以对应多个值吗?

Python中同一键可以对应多个值吗? Python是一门简单、易学且功能强大的编程语言,它广泛应用于Web开发、机器学习、数据科学等领域。Python的数据结构中的字典(dictionary)是其中一个非常有用的数据结构,它可以存储键值…

解锁高并发世界:深入探索并发编程和线程池技术的实用指南

《深入理解高并发编程:JDK核心技术》这本书是一本非常实用的编程指南,旨在帮助读者深入理解并发编程和线程池技术。笔者将目录分为两大部分:基础篇、工具篇和线程池技术篇。 这本书提供了广泛的内容覆盖和深入的讲解,适合读者在高并发编程领…

MT8183核心板 MTK8183处理器规格参数

MT8183核心板集成了多项高性能硬件,是一款功耗低、高效能的芯片,可以支持高质量的平板电脑平台设计。该芯片结合了一个八核CPU,其中包括四个Arm Cortex-A73的“大核心”和四个Cortex-A53核心,全部运行速度高达2GHz,还有…

chatgpt赋能python:Python中的//2

Python中的//2 Python是一种广泛使用的动态编程语言,因为它功能强大,易于学习和使用。Python在每个程序员的工具包中占据重要位置,这是因为Python可以用于构建各种应用程序。 本文将讨论Python中的//2运算符,解释其作用和用法&a…

抖音seo源码开发-抖音搜索优化系统-视频批量剪辑系统搭建

抖音seo源码开发,抖音seo开源定制,抖音seo源码交付,抖音seo源码开发是一项重要的技术,可以将您的抖音号排名提升到更高的位置,帮助您吸引更多的关注和粉丝。SEO源码开发需要具备一定的技术和经验,因此建议在…

跨模态检索综述

跨模态检索问题的描述 图1:跨 模 态 检 索 的 形 式 。 跨 模 态 检索 允 许 查 询 样 例 和 候 选 对 象 属 于 不 同 模 态 的 数 据 , 比 如 图 像搜索文本 , 文 本 搜 索 视 频 等 , 这 种 灵 活 多 变 的 检索方 式 能 够 满…

2023 年 PMP 考试难不难?

PMP 真的不难,目前的考试都只有选择题,往后可能会增加别的题型(2023,8 月份启用第七版教材), 加入了很多 ACP 敏捷管理的内容,而且 敏捷混合题型占到了 50%。 我从新考纲考完下来,最开始也被折…

【计算机组成原理】第八章 输入输出系统

系列文章目录 第一章 计算系统概论 第二章 运算方法和运算器 第三章 多层次的存储器 第四章 指令系统 第五章 中央处理器 第六章 总线系统 第七章 外围设备 第八章 输入输出系统 文章目录 系列文章目录前言第八章 输入输出系统8.1外围设备的定时方式和信息交换方式8.2程序查询…

33.C++函数重载

今天进行了新的学习。 目录 1.什么是函数重载? 2.函数重载的规则 代码演示: 分析: 3.为什么C能进行函数重载 例如: 调用约定: 4.extern关键字 1.什么是函数重载? 在同一个作用域内&#xff0c…

Nodejs安装以及环境变量配置

Nodejs安装以及环境变量配置 1.下载Nodejs1.1最新版下载1.2历史版本下载 2.安装3.验证4.环境变量配置5.npm下载设置6.测试6.设置国内镜像提高下载速度 1.下载Nodejs 1.1最新版下载 直接官网下载:https://nodejs.org/zh-cn/download 根据自己的需求,选择…