1. 背景
假如有很多气象数据,不想通过后台脚本去获取数据,想通过前台服务的rest接口去识别,并且这些栅格数据可能是需要更新变化的,以下对一些技术方法做一个简单的介绍。
需求概述:
点击某一个点,获取影像值。更新影像服务对应的数据,前端获取的值也改变
测试数据情况
用到了同一个范围区域的两份不同插值数据及不同区域(data1及data2)的另外一份插值数据(data3).
2. 基于影像服务
首先需要注意:
单个影像数据的ImageServer是不能进行色带渲染设置,渲染需要前端代码render实现。
发布的影像数据服务需要注意,需要在server中勾选live data选项:
Server rest 界面可进行测试:
使用的获取数据接口为identify
官方rest帮助可参考:
https://developers.arcgis.com/rest/services-reference/enterprise/identify-image-service-.htm
替换原有输入数据的数据
用data2的栅格数据去替换
这里为同名数据,金字塔文件不受影响,只覆盖data1.tif即可,但是替换的数据必须为同名tif数据,都叫data1.tif
数据更新
方法1
通过rest 工具 刷新服务,但是需要登录server,登录后通过refresh工具更新
refresh接口官方帮助参考:
https://developers.arcgis.com/rest/services-reference/enterprise/refreshservice.htm
获取token相关帮助参考:
https://localhost:6443/arcgis/help/en/server/latest/administer/windows/acquiring-arcgis-tokens.htm
https://developers.arcgis.com/rest/services-reference/enterprise/generate-token.htm
https://blog.csdn.net/weixin_44011559/article/details/109463883
方法2
直接重启服务
停止服务:https://developers.arcgis.com/rest/enterprise-administration/enterprise/stop-service.htm
启动服务:https://developers.arcgis.com/rest/enterprise-administration/enterprise/start-service.htm
更新后识别值的变化
不同范围的数据替换测试
这里为data3
原始数据服务范围:
替换刷新后的服务范围:
可以看到更新后,数据范围这些也会自动更新。
3. 基于动态地图服务
MapServer 识别官方帮助:
https://developers.arcgis.com/rest/services-reference/enterprise/identify-map-service-.htm
识别结果:
替换数据集2重启服务后识别
动态地图服务不支持refresh操作,只能通过停止,重启服务来实现数据刷新。
更新数据源前后服务对比:
不同区域的数据源更新
替换为data3的数据
原始数据范围:
更新后数据范围:
可以发现,initial 范围没有改变,但是实际加载的数据发生了变化,定位问题可通过代码定位解决。