瓦片格式 |
随着缓存技术的发展,SuperMap GIS 系列产品对于缓存的生成也在不断地发展和完善,地图缓存精度不断增强。
一般而言,地图缓存主要是指地图瓦片,而从7C 产品开始,地图服务的缓存除传统的栅格瓦片外,还包括新出现的矢量瓦片和属性瓦片(已过时)。
地图缓存的生产主要通过分布式切图服务实现,该功能支持将地图数据切分为多种格式、多种存储的瓦片,如 FastDFS、MongoDB、SMTiles 等格式的栅格瓦片、SVTiles 格式的矢量瓦片和 UTFGrid 格式的属性瓦片。
类型 | 瓦片格式 | 存储方式 | 存储位置 | 支持版本 | 支持的平台 | 分发方式 |
栅格瓦片 | FastDFS(已过时) | FastDFS 分布式文件系统 | FastDFS 内部分布式存储,详见:FastDFS 的安装与配置,地图的切图结果为切片库中的一个切片集。 | 是 | Linux | 支持导出为*.smtiles 文件进行分发 |
MongoDB | MongoDB 分布式文件系统 | 数据存储于指定目录,详见:MongoDB 的安装与配置,地图的切图结果为切片库中的一个切片集。 | 是 | Linux、 Windows | 支持在 MongoDB 系统间直接拷贝分发 | |
OTS(已过时) | OTS 分布式文件系统 | 数据存储于阿里云OTS存储服务系统中。 | 否 | Linux、 Windows | -- |
|
MBTiles | SQLite 数据库 | output 输出路径\sqlite\*.mbtiles 文件,如 China__256X256_PNG_T.mbtiles | 否 | Linux、 Windows | 可直接拷贝文件分发 | |
SMTiles | SQLite 数据库 | output 输出路径\sqlite\*.smtiles 文件,如 China_-1085299276_256X256_PNG.smtiles | 否 | Linux、 Windows | 可直接拷贝文件分发 | |
UGCV5 | 本地磁盘文件目录 | output 输出路径\cache\,详见:SuperMap UGC 格式地图瓦片的版本。 | 否 | Linux、 Windows | 可直接拷贝文件分发 | |
S3对象存储 | /{bucket名}/{地图名}/{地图名}.sci 文件 | 否 | Linux、
Windows |
可直接拷贝文件分发 | ||
GeoPackage | SQLite 数据库 | output 输出路径\sqlite\*.gpkg 文件,如 ChinaProvinces_4326_256X256_PNG.gpkg | 否 | Linux、 Windows | 可直接拷贝文件分发 | |
矢量瓦片 | SVTiles | SQLite 数据库 | output 输出路径\sqlite\*.svtiles 文件,如 China_1023937971_256X256.svtiles | 否 | Linux、 Windows | 可直接拷贝文件分发 |
MongoDB | MongoDB 分布式文件系统 | 数据存储于指定目录,详见:MongoDB 的安装与配置,地图存储为切片库中的一个切片集。 | 是 | Linux、 Windows | 支持在 MongoDB 系统间直接拷贝分发 | |
属性瓦片 | UTFGrid(已过时) | SQLite 数据库 | output 输出路径\sqlite\*.utfgrid 文件,如 China_China_Hyd_R@China400_3857_256X256_8.utfgrid | 否 | Linux、 Windows | 可直接拷贝文件分发 |
如上表所示,对于不同的瓦片格式,我们可以总结为以下特点:
将地图中所有图层切分并存储为栅格图片的地图瓦片,支持 FastDFS(已过时) 、 MongoDB 、OTS(已过时)分布式存储、SMTiles 与 MBTiles 格式、SuperMap UGC 格式、GeoPackage格式。
其中,SuperMap UGC 格式是 SuperMap 各个产品间通用的传统地图瓦片格式,相同版本的地图瓦片可以通用。分布式切图服务支持的“UGCV5”切片类型,支持5.0版本原始缓存和紧凑型缓存。
此外,地图瓦片的图片格式支持 PNG、PNG8、JPG_PNG、JPG、WebP。如果选择 PNG,且当前地图颜色值数小于等于256,SuperMap iServer 会自动将图片存为 PNG8 格式,以节约存储空间。
将地图中的指定矢量图层以矢量瓦片的形式进行切分和存储,支持 SVTiles 格式、MongoDB 分布式存储。
在地图服务的应用中,除了供用户访问浏览地图外,还有为用户提供查询、选择、高亮等操作的实际需求,这时就需要通过要素服务为用户提供上述功能。与地图服务需要通过缓存技术提升访问速度一样,要素服务也需要通过将矢量数据预先生成瓦片来提升客户端的渲染速度,因此矢量瓦片(Vector Tile)就诞生了。矢量数据在存储的时候,其体积比地图瓦片更小,更适合于地图中对时效性要求较高的地物要素的表达,如 POI 信息、路线信息等。常见的在线地图服务,如 Google Maps、百度地图等,都是采用了栅格瓦片做底图,叠加矢量瓦片的做法。
将地图中矢量图层的属性数据以属性瓦片的形式进行存储,支持 UTFGrid 格式。
在地图服务的应用中,如果包含较多的鼠标交互操作,传统做法是在地图上叠加要素图层,每个要素具有自己的热点和事件,用于完成鼠标交互。但在大数据量、高并发请求的环境中,客户端尤其是移动终端上,就不能很好地渲染大数据量的地理要素,因此就面临严重的性能问题。这种情况下,出现了一张地图瓦片结合要素属性信息的缓存方式,也就是在传统的栅格瓦片的基础上,额外存储了按照格网划分的要素属性信息,这种预先划分的要素属性信息,就成为属性瓦片(也称互动格网瓦片)。栅格瓦片结合属性瓦片的这种用法也已经有很多实践应用,最具代表性的是 MBTiles 规范及其附属的 UTFGrid 规范。