高效管理海量影像(四)

服务发布

基于B/S架构的地图服务扩大了地图数据使用范围,影像地图也不例外。特别是当您管理了海量影像后,如何便捷地把服务发布出去,将是您经常会面对的问题。需要及时地把新拍摄的影像,发布给少量的管理者使用时,在完成金字塔、概视图创建后,可直接将配置好的地图通过iServer发布出来,在您浏览的过程中,iServer会按需完成影像的镶嵌显示,并缓存起来,保障浏览的性能。不过,当并发数大于10个,甚至更大时,为了确保浏览性能,建议先切图,再发布。

直接发布影像地图

将显示镶嵌数据集的地图保存在工作空间中,通过iServer发布该工作空间中的地图即可,具体操作为:

1.     启动iSever服务。

2.     登录到服务管理页面,在“首页”单击快速发布一个或一组服务,选择数据来源为“工作空间”。


3.     指定包含影像地图的工作空间。

4.     选择发布的地图服务类型为REST地图服务。

5.     完成服务发布。

6.     单击链接,查看发布的影像地图服务。


图 1 SuperMapiServer发布镶嵌数据集地图

 

i注意

使用SuperMap iServer发布带有镶嵌数据集的地图服务时,要使用单线程发布服务,即如下图所示,取消“是否启用多线程模式”的勾选状态。

图 2 设置单线程发布影像地图瓦片

 

生产缓存并发布

使用iDesktop切地图缓存支持多进程,并可以检查切图结果和进行补切,从而使大规模影像切图不再是遥遥无期。例如,本示例对全球30米分辨率影像,单机开启9个进程切图,比例尺1至13级,瓦片存储在Mongo数据库中,切图共耗时39小时36分钟,单张瓦片耗时:9.89毫秒,Mongo数据库中瓦片所占存储空间:499GB。

在对显示镶嵌数据集的地图执行多进程切图前,首先,要使用只读方式打开地图中的所有数据源。

多进程切图

1.      在iDesktop中,右键显示镶嵌数据集的地图,选择“地图缓存(多任务)”;

图 3 选择地图缓存(多任务)

2.      新建切图任务,主要设置切图参数,包括切图比例尺、切图范围、瓦片类型、瓦片存储等信息,这里将瓦片存储在mongo数据库中,所以要保证本地已经启动了mongo数据库服务。

关于瓦片类型的选择,经过验证瓦片采用jpg_png混编,可以获得最佳切图性能。

图 4 设置切图参数

该步骤将根据切图比例尺设置,完成切图任务的拆分,在缓存输出目录下,将产生CacheTask目录,其下的task目录存储了拆分后的子任务。

图 5 切图任务拆分

3.      设置多进程切图可以使用的进程数目,单击“生成”执行多进程切图。

图 6 执行多进程切图

切图结果

iDesktop提供了缓存结果检查的功能,检查切图常见问题,如白块、白线、瓦片丢失、瓦片损块等问题,并可以进行缓存补切。

缓存检查功能在地图的“制图”区域,单击后,打开缓存检查参数设置对话框。

图 7 选择“缓存检查”功能

关于缓存检查结果的参数,需要指定要检查的缓存目录,也就是生成缓存时指定的缓存输出目录,还需要指定检查的项目,如:是否检查纯色瓦片、是否检查白线,是否将检查的错误数据进行保存,还可以指定检查的地理范围,缓存结果检查也支持多进程。

图 8 设置缓存检查参数

是否检查纯色瓦片:勾选后,纯色瓦片也被检查,否则,不检查纯色瓦片。

是否检查白线:如果瓦片中存在白色像素,并且连续的白色像素超过了横/纵100个像素的范围,是否认定他是白色错误瓦片,如果该项被勾选,将认定为白色错误瓦片。

保存错误数据:勾选该项目后,检查的错误结果将记录到缓存输出路径\CacheTask\check\目录下的udb数据源中。

检查范围:使用GeoJSON文件描述范围多边形,用以确定检查范围,检查时只检查该范围内的瓦片内容。

补切错误瓦片:若用户勾选了该复选框,检查完之后若存在错误,将自动启动补切,此时会在failed文件夹中获取存在错误的子任务(*.sci),补切错误瓦片,其他参数设置可参见多进程切图。

 

缓存结果检查后,正确的*.sci子任务会存放到checked文件夹中,有问题的*.sci子任务会存放到failed文件夹中。在缓存输出路径\CacheTask\check\目录下的udb数据源check.udb中记录了错误信息,如下图所示,数据源中将建立一些面数据集,每个数据集名称都是基于切图有问题的比例尺分母命名,其中记录了该比例尺下有问题的缓存瓦片的边界。

图 9 保存瓦片错误数据

下图所示,check.udb里数据属性表中记录了缓存瓦片发生错误的类型,每一条记录为一张瓦片对应范围的面对象。其中,errortype记录了错误类型编码;errordesc为对应错误编码的描述信息,具体说明如下。

(1)missing:没有此瓦片数据。

(2)error:读取此瓦片数据错误。

(3)white:此瓦片为非纯色瓦片,但是全白图。

(4)lost:对于紧凑缓存,未找到紧凑缓存cf文件。

(5)failure:对于紧凑缓存,打开紧凑缓存cf文件失败。


图 10 问题瓦片的错误类型

缓存结果检查后,可以对错误的瓦片进行补切,如果在“缓存结果检查”对话框勾选了“补切错误瓦片”,缓存结果检查后,将出现如下图所示的提示,选择是否补切。

图 11 补切问题瓦片

如果在切图时没有勾选“补切错误瓦片”,当需要执行补切时,请启动多进程切图任务,选择“执行切图任务”,单击“下一步”进入多进程切缓存设置对话框,这里指定缓存路径为所要补切的缓存的路径,执行切图任务,将弹出提示框,如图 6‑12所示,单击“是”,执行补切操作。


图 12 补切设置

发布瓦片

切图完成后,就可以使用iServer发布缓存瓦片了。

1.     启动iSever服务;

2.     进入服务管理器,登录后,选择“快速发布一个或一组服务”;

3.     选择数据来源为“MongoDB瓦片”


4.     设置mongo数据库信息,包括数据库服务地址和数据库名称。

5.     指定要发布的地图。

6.     设置发布的地图服务类型,这里为REST地图服务。

7.     发布成功,查看地图服务。

上述介绍了两种影像服务发布方式——直接发布影像地图和切图后发布,并且建议您按需求选择合适的发布方式,但是,如果您两种需求都存在时,可以两种方式一起使用,将一半的计算资源用于多进程切图,而另一半用于iServer的动态出图。

相关资源:
高效管理海量影像(一)——影像添加
高效管理海量影像(二)——影像查询与维护工作
高效管理海量影像(三)——影像配图
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值