前端转计算之SuperMap GPA 算子开发-手把手入门教程1

通过rest api调用iServer自动化处理建模GPA工具 立即下载

前端转计算之SuperMap GPA 算子开发-手把手入门教程

一、GPA 了解与使用

1、相关资料

公开资料:

iServer GPA模型在实际场景中的使用——实现导入shp数据并切瓦片存储到MongoDB数据库发布服务_shp切割瓦片-CSDN博客

处理自动化建模 WebApp 自定义算子参数

超图FAQ:基于iServer 11.1.1版本开发的GPA扩展算子,放到到11.3.0版本的iserver报错。该如何解决? - SuperMap技术问答社区

SuperMap iServer 扩展开发领域服务简单示例教程 - 可修改接口参数名称_supermap 示例-CSDN博客

处理自动化工具扩展开发

SuperMap iDesktopX 11i GPA 扩展开发之对现有算子的调用实践_supermap idesktop11i-CSDN博客

2、了解

GPA 英文全称为 Geoprocessing Automaition,简称 GPA,对应中文名称为 处理自动化。

所谓处理自动化,就是 指将一系列的地理数据处理工具,通过一定的逻辑关系进行连接,构建成可自动化进行处理的模型。处理自动化模型是一系列地理数据处理工具串联在一起的流程图,其中前一个工具的输出是后一个工具的输入。

类似于UE游戏引擎中的蓝图。蓝图:一种可视化脚本工具,允许开发者通过图形化界面创建游戏逻辑,而无需深入了解复杂的编程语言。

在这里插入图片描述

类似于 ArcGIS 中的 ModelBuilder。
在这里插入图片描述

类似于 dify 的工作流搭建:

在这里插入图片描述

类似于后端的流程表单的搭建。

在 SuperMap 中 GPA 存在于 iServer 和 iDesktopX 中。即:在 iServer 数据服务中以服务接口的形式提供,在 iDesktopX 中以桌面端工具的形式提供。

对于 Web 应用的开发来说,就是使用 iServer 中的 GPA。当 GPA 工具中的算子不满足业务应用的需求时,就需要基于 iServer 的 GPA 进行算子的定制开发。之后进行自动化流程的建模,最后以服务接口的形式提供给使用者。

3、使用

① 在 SuperMap 官网下载最新版本的 iserver

SuperMap技术资源中心|为您提供全面的在线技术服务

在这里插入图片描述

② 启动 iserver 进入 GPA 页面

点击 startup.bat 启动本地 iserver

在这里插入图片描述

启动后,进入 http://localhost:8090/iserver 页面,没有用户的需要先创建用户、获取许可等。登录之后,即可进入 GPA 模型搭建、使用页面:处理自动化 http://localhost:8090/iserver/apps/gpmodeler/index.html

在这里插入图片描述

③ 使用处理自动化工具进行计算(示例):统计面图层所有地块面积及地块个数

这里以 统计面图层所有地块面积及地块个数 为例。

找到 数据处理-》矢量-》计算总面积,拖拽到中间。

在这里插入图片描述

在右侧面板中,选择参数,点击设置,设置数据源。

在这里插入图片描述

在设置连接信息中,支持多种数据源、数据库、数据文件类型。

在这里插入图片描述

这里以本地文件 udb 超图数据为例。(选中具体的 udb 数据,如果无法选择,可以点击上传数据,将 udb 上传至目录后即可选择)。

在这里插入图片描述

设置文件地址后,数据集列表将自动解析数据中的图层,这里选中 WaterPoly 面图层。

在这里插入图片描述

然后点击执行,在 下方可以看到,在参数一栏中,输出了总面积。

在这里插入图片描述

类似,可以多加几个处理自动化的工具,从而实现一个模型(流程)多个计算工具的顺序执行。比如下面这里还拖拽了计算个数。

如下图所示,拖拽 计算个数 到中间,并且设置源数据集,这里跟 计算总面积 一样 选择了同样的数据和图层。

然后将 计算总面积 与 计算个数 相连接。这意味着,将先执行计算总面积然后再执行计算个数。

在这里插入图片描述

点击执行后,如下:

将会先计算总面积,然后再计算地块个数。

在这里插入图片描述

通过 SuperMap 桌面端打开数据进行验证:

在这里插入图片描述

可以看到参与 GPA 计算的 WaterPoly 面图层确实有 216 个地块(记录)。

在这里插入图片描述

行内变量替换

行内变量替换能够替换输入参数的部分内容。在模型构建时灵活使用行内变量替换,能够大大减轻我们的工作量,达到数据处理规范化、型复用率更高的目的。
使用规则:

  • 在文本框内输入’%,即可自动显示可引用的参数列表。
  • 选择对应的行内变量替换后,也可输入"#,即能自动显示出可用的具体属性。

在这里插入图片描述

④ 导出模型:用于后续复用

创建的自动化处理流程的模型支持在 iServer 中导入、导出。

在这里插入图片描述

比如这里点击导出后,将以 xml 文件的形式导出。导出后可以在其他项目现场或产品的 iServer 中再导入。以达到模型复用的目的。

在这里插入图片描述

⑤ 发布模型

创建好的自动化处理的流程 的模型可以点击发布。可以通过模型分组和模型名称来指定相应分组和名称。

在这里插入图片描述

模型发布成功后,可以在 模型 菜单栏 查看到刚才分组、创建的指定名称的模型。同事 iServer 本身也提供了一些创建好的业务模型,可以直接复用。

在这里插入图片描述

在单个模型上右键,可以修改编辑当前模型,修改相应参数,以用于适配项目上具体的图层、数据等,满足项目的不同数据源等的情况。

在这里插入图片描述

模型还支持 计划执行,点击 计划执行-》添加。

在这里插入图片描述

可以选择定时、按分循环等,按计划执行模型。比如数据可能随时更新,则可以根据定时任务进行按计划的重复计算。确保最新的数据得到最新的计算结果等。

在这里插入图片描述

⑥ GPA 计算模型的 HTTP 请求、Web 调用

在模型上右键,点击打开资源页。

在这里插入图片描述

则会打开如下网址的 计算模型的 访问、请求地址,会有具体的计算模型说明,传参、返回参数等具体信息。

http://localhost:8090/iserver/services/geoprocessing/restjsr/gp/v2/sps.WorkflowProcessFactory.models.模型测试:计算总面积和个数的自动化处理模型/

在这里插入图片描述

在这里插入图片描述

上面这个地址以及输入参数、输出结果就是前端业务应用发送 HTTP POST 请求时的 API 地址及传参、返回结果等。

在 iserver 中 生成令牌/token。

在这里插入图片描述

前端发送HTTP请求 计算模型的步骤如下:

第一步,要发送POST请求,开启计算模型任务。

在这里插入图片描述

第二步,开启计算模型任务执行后会产生一个任务 ID,根据当前 ID 可以获取执行的计算任务的状态以及计算结果,有时计算任务可能比较耗时,发送 GET 可能计算任务还在执行。因此需要判断计算任务是否执行完毕。执行完毕后才能获取计算结果。

在这里插入图片描述

第三步,拿到计算结果后,将结果展示到前端页面中即可。

在这里插入图片描述

第一步 POST 请求发起的计算任务 在 处理自动化页面的 任务菜单中可以看到对应的 任务ID。

在这里插入图片描述

在资源页中的 可用操作-》当前工具任务列表中 也可以看到相同任务 ID 的任务。

在这里插入图片描述

在这里插入图片描述

当任务为 FINISHED 状态后,即可执行 GET 请求,获取计算结果。

当然也可以遍历已有的任务列表中的其中一个,获取计算结果。但获取结果的本质都一样,通过任务ID获取已经计算完成的任务的结果。

test.html 完整代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>测试用</title>
    <style>
      html,
      body {
        height: 100vh;
        width: 100vw;
        overflow: hidden;
      }
      .container {
        display: flex;
        flex-direction: column;
        height: 100%;
        width: 100%;
      }
      .sendBtn {
        width: 10rem;
        height: 2rem;
        margin-left: 2rem;
        margin-top: 2rem;
        margin-bottom: 2rem;
      }
      .resultItem {
        display: flex;
        margin-left: 2rem;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <button type="submit" id="submit" class="sendBtn">
        <i class="fas fa-paper-plane"></i> 发送POST请求
      </button>
      <div class="resultItem">
        <div>面积为:</div>
        <div id="responseArea"></div>
      </div>
      <div class="resultItem">
        <div>个数为:</div>
        <div id="responseNum"></div>
      </div>
    </div>

    <script>
      function fetchPromise(url, options) {
        return new Promise((resolve, reject) => {
          fetch(url, options)
            .then((response) => {
              if (!response.ok) {
                console.error(
                  "Network response was not ok " + response.statusText
                );
                reject(response.statusText);
              }

              return response.json(); // 解析JSON数据
            }) // 解析JSON响应体内容
            .then((result) => {
              if (!result) {
                console.error("结果为空");
                reject("结果为空");
              }
              resolve(result);
            }) // 打印结果或进行其他操作
            .catch((error) => {
              console.error(error);
              reject(error);
            });
        });
      }
      document
        .getElementById("submit")
        .addEventListener("click", async function (event) {
          const token =
            "4nazxe-K_bUlswLjdBQ2-RA8DE35AX9zjjR9W9WGmWBzKcs7seOmtQTfLHq_9yPuXhdu-8rcJCd_fJtqPKRtyzBm";
          const gpaModelURL =
            "http://localhost:8090/iserver/services/geoprocessing/restjsr/gp/v2/sps.WorkflowProcessFactory.models.模型测试:计算总面积和个数的自动化处理模型";
          const startJobURL = `${gpaModelURL}/jobs?token=${token}`;
          const options = {
            method: "POST", // *GET, POST, PUT, DELETE, etc.
          };
          const result = await fetchPromise(startJobURL, options);
          if (result && result.jobID) {
            const finishJobURL = `${gpaModelURL}/jobs/${result.jobID}.json?token=${token}`;
            const options2 = {
              method: "GET", // *GET, POST, PUT, DELETE, etc.
            };
            let result2 = await fetchPromise(finishJobURL, options2);
            while (result2.state.runState !== "FINISHED") {
              setTimeout(async () => {
                result2 = await fetchPromise(finishJobURL, options2);
              }, 500);
            }
            const jsonRes = JSON.parse(result2.messages.result);
            document.getElementById("responseArea").textContent =
              jsonRes["computegeodesicarea-totalArea"];
            document.getElementById("responseNum").textContent =
              jsonRes["computegeodesicarea-totalArea"];
          }
        });
    </script>
  </body>
</html>

SuperMap iDesktopX 11i 工作空间迁移插件 SuperMap iDesktopX 11i 扩展插件,主要用于对数据库型工作空间进行整体迁移,包括:工作空间、数据源、数据集、地图、场景、图表、模型、视频地图、大屏、表格 以及 资源 等。 立即下载

相关推荐

GEO芯片数据下载和探针ID转换(保姆级教程)

R语言安装、GEO芯片数据下载、探针ID转换

qq_43138237的博客 3万+

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

2.在IDEA中打开刚刚新建好的二次开发工程:如下图所示,SampleCode为新建工程,若勾选了导入二次开发示例代码,工程中还会加载二次开发示例模板SampleCodeTemplates目录。1.新建二次开发工程:视图->新建二次开发工程,在弹出框中设置工程名称、包名、版本等信息,选择扩展开发模板类型为GPA,该模板用于扩展GPA算子。Library Files 对话框中,同时选中以下 4 个目录,单击 OK 按钮后,选择 SampleCode,即可。选框等,用户在配置功能对话框界面时,直接调用即可。

SuperMap技术控 2151

离散数学期末复习笔记【精华版】

文章目录前言一、????理逻辑1. 命题逻辑2. 等值演算3. 主合取范式、主析取范式4. 【题】推理证明5. 辖域、自由变元、约束变元二、????合1. 环和、环积,幂集,笛卡尔乘积三、 ????????关系1. 自反、对称、传递2&3. 合成运算,逆关系、闭包4. 哈斯图、上下界、偏序5. 等价关系、划分四、????1. 幺元(么元、单位元)、零元、逆元,半群、群、阿尔贝群、独异点、循环独异点2. 【题】由表判断3. 【题】证明五、????论1. 简单图、平凡图、多重图、子图、补图、出度、入度、

林大夕可的博客 17万+

11i重磅升级,一文读懂 GPA Web端五大亮点

SuperMap iServer 11i(2022) 版本的处理自动化服务Web端从功能、界面到操作进行了全方位的升级。整体来讲,新版界面更人性化,更精美,用户体验和易用性有了很大的提升。点击进入正文,查看具体内容。...

SuperMap地图技术专栏 1159

【低轨】Starlink星链-Ku波段OFDM信号同步机制与PNT应用潜力

本文深入解析了Starlink星链Ku波段OFDM信号的同步机制及其在定位、导航与授时(PNT)领域的应用潜力。研究发现,其信号帧内嵌的同步序列具有相位恒定特性,支持超长相干积分,可在极低信噪比下实现高精度伪距测量,为利用低轨卫星通信信号实现高精度PNT服务提供了新的技术路径。

weixin_29250403的博客 726

Android加密开发实战:Spongy Castle集成与国密算法应用指南

在移动应用开发中,数据加密是保障用户隐私和信息安全的基石。其原理基于密码学算法,通过对数据进行编码转换,确保即使数据被截获也无法被未授权方解读。这项技术的核心价值在于为敏感信息提供机密性、完整性和身份验证,广泛应用于用户登录、本地存储、网络通信等场景。对于Android开发者而言,系统自带的加密功能有时无法满足需求,特别是涉及国密算法或更丰富算法套件时。本文聚焦于Spongy Castle这一专为Android定制的加密库,它有效解决了与系统内置Bouncy Castle的兼容性问题,并提供了对SM4等国密

weixin_27722377的博客 302

iServer GPA模型在实际场景中的使用——实现导入shp数据并切瓦片存储到MongoDB数据库发布服务

一、场景介绍 大数据时代来临,人们对于空间大数据处理的自动化与性能需求也越来越迫切。为此,SuperMap提供了处理自动化服务,通过处理自动化工具(以下简称工具)构建处理自动化模型(以下简称模型)并运行,可实现空间数据处理与分析过程的自动化。除此之外,也可以通过使用自定义工具构建模型进行空间数据处理与分析。 二、操作使用 SuperMap iServer内置了处理建模器,用于可视化构建处理自动化模型。通过建模器您可以: 可视化拖拽和连接工具,构建符合您工作需求的模型。 分步运行模型...

SuperMap技术控 3627

端到端自动驾驶的精准测试场景开发

1. 背景介绍 自动驾驶技术的发展正在改变交通运输的未来,然而,要实现安全可靠的自动驾驶,需要进行大量的测试和验证。端到端自动驾驶系统的测试场景开发是实现这一目标的关键。本文将详细介绍端到端自动驾驶的精准测试场景开发,包括核心概念、算法原理、数学模型、项目实践,以及未来发展趋势。 2. 核心概念与联系

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 1315

SuperMap iPortal如何使用处理自动化建模

SuperMap iPortal 提供了处理自动化建模(GPAModelBuilder) WebApp。它是一款可视化构建处理自动化模型的web应用。通过处理自动化工具(以下简称工具)构建处理自动化模型(以下简称模型)并运行,可实现空间数据处理与分析过程的自动化。SuperMap iPortal 作为 GIS 门户软件平台,支持了GPA 模型资源的保存、查询和分享。

weixin_42493559的博客 1362

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(一)

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(一)

宁波阿成的博客 652

教你如何阅读Autosar代码(6):常量变量定义

编译器抽象应该为常量的声明和定义定义CONST宏。编译器抽象应该定义VAR宏来声明和定义变量。memclass:常量本身的分类;memclass:变量本身的分类;vartype:变量的类型;type:常量的类型;

wdconan001的博客 955

SuperMap GIS基础产品FAQ集锦(20260309)

旧版iClient3D for Cesium无法正确加载,使用iServer中正常预览的iClient3D for Cesium包即可,具体位置参考技术小视频:https://www.bilibili.com/video/BV1eC4y1A7r1/?基于KML的节点动画实现思路,参考文档:https://blog.csdn.net/supermapsupport/article/details/103007531。】在iDesktopX中编辑飞行路线文件,取消“高度锁定”和“倾斜角锁定”的勾选。

SuperMap技术控 642

【Segment Anything Model】三:SAM模型微调自定义数据集,更改混合提示方式:点,框,点框混合

1.微调SAM预备知识。

cvxiayixiao的博客 1万+

SuperMap GIS基础产品FAQ集锦(20240923)

SuperMap GIS基础产品FAQ集锦(20240923)

SuperMap技术控 2551

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SuperMap GIS基础产品FAQ集锦(20260209)

参考文档:http://support.supermap.com.cn:8090/webgl/examples/TopicDOC/Guide%20to%20Data%20Processing%20and%20Visualization%20for%20Models%20with%20a%20Time%20Dimension.html。】目前yukon官网提供的包如下所示,没用arm的pg包:https://yukon.supermap.io/2.1/installation.html。

SuperMap技术控 805

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SuperMap GIS 基础产品 FAQ 集锦(20260828)

11.3.0问题原因】缺少9.1.2版本做扩展开发的文件。解决办法】将扩展开发的文件拷贝到指定目录;建议将扩展开发功能重新使用11.3.0编译,避免接口废弃或不兼容错误。11.3.0解决办法】发布页面的接口只显示默认的,没办法更改,只有发布之后再添加接口。

SuperMap技术控 264

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SuperMap GIS基础产品FAQ集锦(20260518)

11.3.0解决办法】SuperMap iDesktopX 桌面软件作为面向用户的GIS数据处理和制图软件,原生支持对BIM模型进行位置编辑、平移、替换等操作,并能保存修改结果,可直接提供给系统用户使用。11.3.0解决办法】检查是否设置管点图层的父图层。这种问题常见于通过设置自定义专题图图层生成自适应管点,由于专题图没有存储拓扑关系,需要设置其父图层为对应的管线图层,设置完成后刷新图层,自适应管点才能显示。

SuperMap技术控 1843

使用SuperMap iDesktopX如何去掉“耗子尾巴”

在项目中,通过会遇到一些错误的矢量数据,比如“耗子尾巴”。什么是“耗子尾巴呢”,我们所说的“耗子尾巴图斑”,是不规则图斑的一种形态。规则的图斑,应该形态接近圆、矩形、菱形或凸多边形的图斑。自然界中多数图斑应该是相对规则的,即使河流等长条形的图形,其在微观层面上(临近节点之间)也是有比较规则的。不规则的图斑,包括各类拓扑错误、微小洞、边线夹角过小等形态。耗子尾巴图斑是其中的一种。

SuperMap技术控 1359

iServer GPA模型在实际场景中的使用——“模型库”功能使用说明

在上一篇博客iServer GPA模型在实际场景中的使用——倾斜摄影处理成3DTiles数据中我们了解到可以将自定义的模型工具保存到当前iServer的处理自动化模型工具中;在业务中有时需要我们分享模型,但又希望保护其中的业务流程不被泄露。为此,iServer的处理自动化功能提供了一种模型管理格式–模型库(model Library),下面小编将为大家详细介绍这个功能的管理和使用。我们通过模型库可以实现将模型分享给不同用户使用,达到满足不同业务的需求;并且操作简单,界面完善,欢迎大家来体验尝试。

SuperMap技术控 406

iServer GPA模型在实际场景中的使用——倾斜摄影处理成3DTiles数据

在上一篇博客iServer GPA模型在实际场景中的使用——实现导入shp数据并切瓦片存储到MongoDB数据库发布服务,我们了解到了在iServer10.2.1版本如何使用GPA处理自动化服务实现相应的功能;随着iServer产品版本的更新,GPA处理自动化服务也升级优化了建模页面UI、模型执行进度信息以及帮助提示等内容;那么接下来我们就使用当前iServer最新版11.1.1a版本的GPA处理自动化服务,为大家演示关于如何实现“将倾斜摄影OSGB数据处理成3DTiles。

SuperMap技术控 588

SuperMap iDesktopX批量Revit数据自动化处理——导入发布

作者:姜尔 GPA自动化模型的优点在于随心定制高自由、无需编程低操作、一键执行低人工、便捷模板多端用。因此,其使用方法并非严格按本文模板流程执行,可自由根据业务所需随意搭配。本文主要介绍将rvt数据通过SuperMapiDesktopX处理自动化GPA算子实现一键批量入库、发布,以提供一种参考价值。

SuperMap技术控 1009

SuperMap WebGPA外部大数据集群部署实践

SuperMap 分布式空间分析与外部大数据集群集成,从大数据集群组件部署到WebGPA对接集群使用的指南。

SuperMap技术控 1629

SuperMap 基于Spark的大数据分析基础环境安装及空间大数据分析实验

SuperMap 基于Spark的大数据环境搭建及分布式空间分析

qq_41134073的博客 1209

iServer GPA 免登录访问方案:Token + Nginx 反向代理

SuperMap GPA 是 SuperMap 提供的可视化地理处理建模工具,在 iServer 中以 Web 应用形式运行,支持通过浏览器拖拽构建和执行模型。在项目中,常需将 iServer 上的 GPA 页面集成到自有系统中。本文介绍一种安全、免密、无需前端存储凭证的方案——通过 Token 认证结合 Nginx 反向代理,实现对 GPA 页面的无缝免登录访问。

SuperMap技术控 285
上一篇: 纵观75年自然资源信息化:从硬件到软件,从技术到理念
下一篇: CesiumJS 下 GeoJSON 渲染利器来了~~~
碳学长
博客等级 码龄11年 1万+粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碳学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值