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/ 如发现有错,请留言,谢谢)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)