SuperMap iServer数据动态更新刷新地图与数据服务
更新:2022年6月27日
SuperMap iServer 11i 底层修改逻辑,增加智能指针。11i版本不需要以下操作即可实现
一、使用背景
有这么一个需求,后端也就通过SuperMap iDesktop或数据库更新了新增或更新某个数据地理信息后,服务端也就是SuperMap iServer无法实时查看到更新的数据,原因是SuperMap iServer没有主动监测第三方修改数据的变化(使用SuperMap iServer接口增删改无该问题)
解决方式要么通过重启SuperMap iServer解决,要么通过删除服务重新发布解决,但是这两种版本都比较麻烦,SuperMap iServer 10.1.3版本中可以通过调用SuperMap iServer Rest API的方式进行刷新工作空间。
二、SuperMap iServer环境
2.1 使用SuperMap iServer版本
官网10.1.3及以上已经同步该问题,建议使用官网正式版本。
以下为10.1.2临时包:
- Linux:supermap_iserver_1012_19721_5526_linux64_deploy.tar.gz
- Windows:supermap_iserver_1012_19721_5497_win64_deploy.zip
下载地址:
- 链接:https://pan.baidu.com/s/1OhI72ebiCgRB_V_Y4QrUpg
- 提取码:kpmo
2.2 使用方法
2.2.1 (10.2及之后的版本可以不设置)修改SuperMap iServer配置
10.2及之后的版本不需要在修改次操作,直接调用2.2.2刷新接口即可
修改%SuperMap iServer安装目录%\webapps\iserver\WEB-INF\iserver-system.xml
- checkDatasourceConnectionInterval 检查“数据库型 工作空间”是否改变或“数据库型数据源”是否断开的时间间隔,单位为秒,默认30s,如果数据体量较大,刷新时间间隔短,刷新耗时较大,多个刷新线程在排队,影响性能。
- refreshDatasource 设置是否开启刷新数据库型数据源,默认为false
修改成以下配置:
<checkDatasourceConnectionInterval>120</checkDatasourceConnectionInterval>
<refreshDatasource>true</refreshDatasource>
修改完成后,重启SuperMap iServer服务。
2.2.2 数据更新后,通过SuperMap iServer RestAPI代码刷新工作空间内容
1. 通过RestAPI操作必须先申请iServer Token
申请地址:
http://IP:8090/iserver/services/security/tokens

2.刷新工作空间
请求URL:
http://IP:8090/iserver/manager/workspaces/workspacereload.rjson?token=
POST请求
{
"workspaceConnectionInfo": "/opt/zhui.sxwu",
"isForce": true,
"datasets": {
"pggis": ["region_sum"]
}
}
请求体说明:
- workspaceConnectionInfo 文件型工作空间路径绝对路径。如果是数据库类型工作空间,请查看具体请查看SuperMap iServer 帮助文档,例如oracle工作空间则填写"server=orcl203;username=test;password=test;type=ORACLE;database=;name=testWorkSpace;driver=null"
- pggis 为需刷新的数据源名称
- region_sum 为刷新数据集名称,如果有多个数据源刷新为数组
例如:
1.刷新指定工作空间的内容

2.返回结果为true代表刷新成功

2.2.3 验证服务
1.数据服务
workspacereload刷新前:

workspacereload刷新后:

2.地图服务
由于SuperMap iServer默认表述浏览(classic/leaflet等)有缓存,故需要使用iClient客户端进行验证,且iClient客户对接地图出图设置cacheEnabled: false属性。
例如:
workspacereload刷新前:

workspacereload刷新后:

(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)
SuperMap iServer数据动态更新刷新地图与数据服务的更多相关文章
- MFC编辑框接收数据动态更新与刷新方法代码示例-如何让编辑框内容实时更新
MFC编辑框接收数据动态更新与刷新方法代码示例-如何让编辑框内容实时更新 关键代码: //发送数据通知 //from txwtech@163.com LRESULT CCommSampleDlg::O ...
- Android零基础入门第44节:ListView数据动态更新
原文:Android零基础入门第44节:ListView数据动态更新 经过前面几期的学习,关于ListView的一些基本用法大概学的差不多了,但是你可能发现了,所有ListView里面要填充的数据都是 ...
- Android零基础入门第67节:RecyclerView数据动态更新
列表的数据往往会跟随业务逻辑不断刷新,所呈现出来的数据需要动态更新,那么RecyclerView是如何动态更新数据的呢? 之前在学习ListView的时候如果数据改变,需要调用notifyDataSe ...
- bootstrap-multiselect.js如何动态更新select里的数据
在使用jQuery的bootstrap-multiselect插件时可能会遇到一个问题 就是想要动态的去更新select里的数据 比如我们要使一个id=select的选择框实现多选 那么先用ajax获 ...
- highChart数据动态更新
highChart官网上通过ajax加载数据的例子 上面是第一次生成图表的时候使用 我想动态更新,在已经生成的图表上动态更新 chartBS.series[0].setData(sugarListDa ...
- 前端/h5/React D3.js实现根据数据动态更新图形/类似进度实时变化效果
最近接到一个需求,在满足规则下,实现类似这种展示效果,其实就是用图形反映数据(NK,一种干扰值) 运行后,它其实是不断在动的,每格都可能显示灰色或者彩色 这里一共是10个格子,每格代表一个范围边界,说 ...
- ngx-echarts 图表数据动态更新
使用echarts绘制图表时,初次赋值数据正常展示,重新获取数据之后,图表没有跟着动态刷新.解决的办法是: html文件 <div echarts [options]="chartOp ...
- Android AlertDialog 动态更新里面的ListView数据
1:和ListView的数据跟新是基本一样的. 2:Activity代码示例 public class MainActivity extends AppCompatActivity { AlertDi ...
- thinkphp框架,数据动态缓存后,或数据已读取出来,想分页怎么办
//读取缓存后赋值到数组,通过array_slice函数处理,如: $blog = S('blogname'); //赋值 $count = count($blog); //条数统计 $page = ...
- Spring Cloud(八):使用Spring Cloud Bus来实现配置动态更新
使用Spring Cloud Config我们能实现服务配置的集中化管理,在服务启动时从Config Server获取需要的配置属性.但如果在服务运行过程中,我们需要将某个配置属性进行修改,比如将验证 ...
随机推荐
- pytest数据驱动(最简单)
pytest数据驱动(最简单) 第一种:通过yaml文件获取数据(一维列表) data.yaml文件内容如下: - '软件测试'- '单元测试'- '自动化测试'- '性能测试'- '测试开发'- ' ...
- 【VMware】 桥接网路发现无法Ping通原因
解决方案参考: https://blog.csdn.net/weixin_33856370/article/details/92420910 设置好的同网段的三台虚拟机这次开机连不上网了 仔细发现VM ...
- 【Tutorial C】02 快速入门
在信息化.智能化的世界里,可能很早很早 我们就听过许多IT类的名词, C语言也在其中,我们侃侃而谈,到底C程序是什么样子? 让我们先看简单的一个例子: #include<stdio.h> ...
- MyBatisPlus公共字段自动填充
公共字段自动填充 公共字段 新增员工,修改.编辑员工信息时,都需要设置创建时间,修改时间等操作,这些操作过于重复.繁琐,为了有更快捷高效的,MyBatisPlus提供了公共字段自动填充功能,当我们执行 ...
- 【转载】 Tensorflow学习笔记-模型保存与加载
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lovelyaiq/article/det ...
- Google的Jax框架的JAX-Triton目前只能成功运行在TPU设备上(使用Pallas为jax编写kernel扩展)—— GPU上目前无法正常运行,目前正处于 experimental 阶段
使用Pallas为jax编写kernel扩展,需要使用JAX-Triton扩展包.由于Google的深度学习框架Jax主要是面向自己的TPU进行开发的,虽然也同时支持NVIDIA的GPU,但是支持力度 ...
- MPI经典课程视频 —— 中国科学技术大学-并行计算(国家级精品课) —— 陈国良院士的06年课程
课程视频地址: https://www.bilibili.com/video/BV1U7411N78e
- Error occurred while running `from pyglet.gl import *`HINT: make sure you have OpenGL install. On Ubuntu, you can run 'apt-get install python-opengl'.
安装mujoco后运行可视化界面代码报错: Error occurred while running `from pyglet.gl import *`HINT: make sure you have ...
- 安装华为软件昇腾mindspore-gpu-1.9.0失败记录
官网安装地址: https://www.mindspore.cn/install PS: 不得不说华为的软件是愈发的不好用了,这个mindspore老版本去年我是使用过的,安装也是比较方便的,搞不清这 ...
- 为什么不建议在华为技术论坛(昇腾论坛/mindspore技术论坛)发表帖子和技术博客
华为的硬件设计技术在国内没得说,华为的硬件制造技术基本就没听说过,而华为的软件技术可是出了名的不咋样.一年前曾经在昇腾的页面进入到华为技术论坛,并且发了几篇关于mindspore的编译问题的帖子,由于 ...