服务发布
基于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所示,单击“是”,执行补切操作。
发布瓦片
切图完成后,就可以使用iServer发布缓存瓦片了。
1. 启动iSever服务;
2. 进入服务管理器,登录后,选择“快速发布一个或一组服务”;
3. 选择数据来源为“MongoDB瓦片”
4. 设置mongo数据库信息,包括数据库服务地址和数据库名称。
5. 指定要发布的地图。
6. 设置发布的地图服务类型,这里为REST地图服务。
7. 发布成功,查看地图服务。
上述介绍了两种影像服务发布方式——直接发布影像地图和切图后发布,并且建议您按需求选择合适的发布方式,但是,如果您两种需求都存在时,可以两种方式一起使用,将一半的计算资源用于多进程切图,而另一半用于iServer的动态出图。
相关资源:高效管理海量影像(一)——影像添加
高效管理海量影像(二)——影像查询与维护工作
高效管理海量影像(三)——影像配图