SuperMap iServer数据动态更新刷新地图与数据服务

2021-08-17  本文已影响0人  非法小恋

一、使用背景

有这么一个需求,后端也就通过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临时包:

下载地址:

2.2 使用方法

2.2.1 (10.2及之后的版本可以不设置)修改SuperMap iServer配置

10.2及之后的版本不需要在修改次操作,直接调用2.2.2刷新接口即可
修改%SuperMap iServer安装目录%\webapps\iserver\WEB-INF\iserver-system.xml

修改成以下配置:

<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"]
    }
}

请求体说明:

例如:

1.刷新指定工作空间的内容


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


2.2.3 验证服务

1.数据服务

workspacereload刷新前:


workspacereload刷新后:


2.地图服务

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

例如:

workspacereload刷新前:


workspacereload刷新后:


(转发请注明出处:https://www.jianshu.com/u/829cbce64381 如发现有错,请留言,谢谢)

上一篇 下一篇

猜你喜欢

热点阅读