本文共 3414 字,大约阅读时间需要 11 分钟。
作者:doremi
一、缓存类型
缓存机制是一种显著提高地图服务访问效率的方法。在SueprMap iServer 产品中提供了多种的地图缓存类型,让客户在不同的应用场景中选择最合适的类型来使用。
一般而言,地图缓存主要指的是地图瓦片,随着行业的需求,增加了矢量瓦片和属性瓦片。以下是SuperMap iServer中三种瓦片类型的详细介绍:地图瓦片
将地图中所有图层切分并存储为栅格图片的地图瓦片,支持 FastDFS 和 MongoDB分布式存储、SMTiles 与 MBTiles 格式、SuperMap UGC 格式、GeoPackage格式。矢量瓦片
将地图中的指定矢量图层以矢量瓦片的形式进行切分和存储,支持 SVTiles 格式。 在地图服务的应用中,除了供用户访问浏览地图外,还有为用户提供查询、选择、高亮等操作的实际需求,这时就需要通过要素服务为用户提供上述功能。与地图服务需要通过缓存技术提升访问速度一样,要素服务也需要通过将矢量数据预先生成瓦片来提升客户端的渲染速度,因此矢量瓦片(Vector Tile)就诞生了。矢量数据在存储的时候,其体积比地图瓦片更小,更适合于地图中对时效性要求较高的地物要素的表达,如 POI 信息、路线信息等。常见的在线地图服务,如 Google Maps、百度地图等,都是采用了栅格瓦片做底图,叠加矢量瓦片的做法。属性瓦片
将地图中矢量图层的属性数据以属性瓦片的形式进行存储,支持 UTFGrid 格式。 在地图服务的应用中,如果包含较多的鼠标交互操作,传统做法是在地图上叠加要素图层,每个要素具有自己的热点和事件,用于完成鼠标交互。但在大数据量、高并发请求的环境中,客户端尤其是移动终端上,就不能很好地渲染大数据量的地理要素,因此就面临严重的性能问题。这种情况下,出现了一张地图瓦片结合要素属性信息的缓存方式,也就是在传统的地图瓦片的基础上,额外存储了按照格网划分的要素属性信息,这种预先划分的要素属性信息,就成为属性瓦片(也称互动格网瓦片)。本篇文章将重点介绍地图瓦片的使用。
####瓦片格式总览
|瓦片格式| 存储方式| 存储位置| 支持的平台| 分发方式|
|:---------|:-------------|:-----||:—||:—| |FastDFS | FastDFS分布式文件系统 |FastDFS内部分布式存储,切片集 |Linux|支持导出为*.smtiles文件进行分发| | MongoDB | MongoDB分布式文件系统 | 数据存储指定目录,切片集 |Linux Windows|支持在MongoDB间直接拷贝分发| | SMTiles | SQLite数据库 | Output输出路径\sqliete*.smtiles文件 |Linux Windows|可直接拷贝文件分发| | MBTiles | SQLite数据库 | Output输出路径\mbtiles*.mbtiles文件 |Linux Windows|可直接拷贝文件分发| | UGCV5 | 本地磁盘文件目录 | Output输出路径\cache\ |Linux Windows|可直接拷贝文件分发| | GeoPackage | SQLite数据库 | Output输出路径\sqlite*.gpkg文件 |Linux Windows|可直接拷贝文件分发|UGCV5
地图缓存的生产主要通过SuperMap iServer分布式切图服务实现,以生成UGCV5格式地图瓦片为例: 第一步,在iServer管理界面中选择服务-分布式切图 第二步,选择服务组件 第三步,选择需要切片的地图 第四步,切片类型选择地图瓦片 第五步,存储类型选择UGCV5 第六步,存储路径默认为output/cache下,推荐使用默认 第七步,选择比例尺的方案,可以选择已存在的比例尺方案,如天地图比例尺方案,也可以自定义比例尺,填入比例尺分母,点击添加比例尺分母即可 第八步,高级设置,缓存范围和切图原点一般选择默认的,也可以按照需求填写切图范围,切图原点为切图范围的左上角坐标,切片大小推荐256*256,图片格式推荐PNG格式,地图是否透明按照需求勾选,其他的按照默认设置。 第九步,创建切图任务。 然后等待切图任务的完成,就可以在存储位置找到已切好的地图瓦片文件。FastDFS
生产FastDFS格式缓存(FastDFS的安装以及配置在iServer帮助文档中有详细的介绍)需要设置可用的FastDFS分布式文件服务器地址。点击添加存储位置,写入存储ID(自定义),存储ID是该切片库唯一的标识;设置FDFS Trackers,也就是在配置FastDFS时设置的tracker_server的ip以及端口信息,如:192.168.112.251:22122;设置FDHT Groups,即FastDHT group server的地址,如:192.168.112.251:11411,确定之后就可以创建切图任务,开始生成FastDFS格式缓存。MongoDB
MongoDB格式缓存(MongDB的安装以及配置在iServer帮助文档中有详细的介绍)的生成也需要设置MongoDB的服务地址,选择MongoDB储存类型后,点击添加储存位置,填入存储ID,MongoDB的服务地址,如:192.168.112.251:27017,确定之后就可以创建切图任务。MBTiles
MBTiles格式缓存的生成要求切图的地图坐标系统为:Web Mercator,即 PCS_WGS_1984_WORLD_MERCATOR ,EPSG Code:3857。而且仅支持 Web Mercator 坐标系下的固定比例尺集合,也就是只能使用MBTiles规定的固定比例尺集合。SMTiles
SMTiles格式缓存的生成和UGCV5的步骤一样,相对于MBTiles格式缓存,SMTiles可以支持任意坐标系的地图,任意比例尺,任意切图原点。GeoPackage
GeoPackage格式缓存生成只能使用规定的GeoPackage标准格式的0~20级比例尺。####特点以及应用场景####
常用缓存
SuperMap UGC格式的地图瓦片是SuperMap 各个产品间通用的传统地图瓦片格式,相同版本的地图瓦片可以通用。SuperMap iServer 6R和SuperMap iServer 6R(2012)使用的是4.0缓存,SuperMap iServer 6R SP1之后使用的是UGCV5,也就是5.0缓存。SuperMap UGC格式缓存的优点在于不用搭建任何的环境,也不用安装任何的数据库就能生成,并且跨平台使用,所以SuperMap UGC缓存是使用最广的缓存格式。并且5.0缓存支持缓存的追加和更新。
大数据量
移动端