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