作者:taco
最近在项目中遇到客户想要实现白模的局部更新,正好在iDesktopx以及iServer的11.2.0版本中已经实现了该功能模块。但涉及到具体的使用层面,大家可能还存在一些疑惑。本篇文章该算子的使用,以及如何构建GP算子的请求更新,来整体的介绍这一个功能。
目录
一、数据的准备
在数据层面,我们需要有
1)原始的数据
2)基于原始数据做了更新的数据
3)更新的范围。
下图以北京的部分白模面为基础分别展示。
【原始数据】
原始数据为最初的面拉伸生成白模的数据。
【数据发生变更】
变更数据中:包含了对白模面的增加(新建房屋);对白模面的删除(拆迁房屋);对白模面的属性修改(变更房屋)
【更新范围】
更新范围并非为市,县,轮廓。仅需要覆盖所需更新的白模面范围即可,但通常会出现整个区县中,某几块的白模出现变更,此时我们在绘制范围可能较为繁琐,不如直接使用整个区县范围更易操作。
二、白模制作
基于原始数据我们使用iDesktopX中的【面拉伸生成模型瓦片】(三维数据-生成瓦片-面拉伸生成模型瓦片)功能进行制作。
关于白模拉伸的参数,根据项目实际需求进行配置即可,这里就不过多介绍了。执行完成后。我们可以得到白模的缓存数据。
三、iServer 算子的使用
3.1、打开处理自动化服务
我们打开iserver的界面,在【服务】-【服务管理】中找到我们的【处理自动化服务】功能。通常我们通过WebUI界面来配置我们新的模型,如下图所示。
3.2、添加面拉伸更新算子
我们打开UI界面即可看到工具栏、模型、变量等模块。此时,我们在工具中搜索【面拉伸模型瓦片局部更新功能】或在【三维数据】-【模型处理】模块中可以直接找到。
将算子拖拽至右侧场景中后,我们对其参数进行编辑。双击算子我们可以看到可配置参数的界面
配置参数分别为:待更新的缓存路径、需要更新数据、更新范围
待更新缓存数据:选择上一步白模制作的原始缓存scp文件。
需要更新数据:选择数据源中操作人员已更新后的完整矢量数据(或部分矢量数据)
更新范围:操作人员如果更新具体县数据可直接用县级矢量面范围进行更新,如未有县级,可使用省级。
配置后完整参数如下图所示
3.3、执行及效果展示
单机执行按钮,即可完成白模数据的增删改。
下图为更新后白模数据
四、通过请求方式执行算子
由于涉及到业务模块,客户不可能直接使用产品中的执行按钮来实现数据的更新,通常都是通过数据更新后,触发了某个机制后针对数据进行更新。此时就需要通过请求方式进行更新。
4.1、算子的配置与发布
此时我们当然可以直接发布我们的更新算子,但是由于后期可能需要对接口进行自定义。所以我们在此基础上对算子增加一些配置。我们在【变量】中找到【文件路径】、【矢量数据集】变量,并对其进行命名。
命名完成后点击发布即可。
4.2、资源配置页面与参数查看
发布的模型可在【模型】中找到,选中模型右键打开资源页。即可进入资源页面。
打开后可以看到资源配置页面如下图
4.3、令牌申请
在构建请求体时,为保证数据及操作安全问题,此时需要iServer的安全令牌才可以正常去请求。我们回到首页,在首页单机头像选择【令牌】即可。申请后我们可以得到一串token值,这个填写在我们最终的请求体中即可。
4.4、请求体构建
我们的url主要以下面的形式组成
http://localhost:8090/iserver/services/geoprocessing/restjsr/gp/v2/sps.WorkflowProcessFactory.models.白模变更:模型变更/jobs?token=xN7YwtKpvFmnQlMgD885nuAt4y7fjTlSuSWlO5IzJHOWIb3agKOOJhzCRMu3fhZGZFC3pLKH5ccj5be9kJLmoC73
完整的请求参数如下
执行完成后即可得到与(三)中的效果一致的更新后的白模缓存。