在某一比例尺中,一幅地图被切割的地图图片越多,地图图片的命中率越高。但是,命中率越高,每次传输的图片个数就会越多,传输图片也会影响地图响应时间,这样就需要在服务器并发量和网络传输量之间寻找一个平衡点,即达到浏览效果最佳,准确的来讲,是显示效率最优。

因此,在对地图服务准备瓦片的时候,您可以综合考虑以下几个方面因素。

瓦片格式

支持对地图服务生成和使用栅格瓦片、矢量瓦片,且生成的瓦片包支持分享传播与离线使用。在使用瓦片的时候,您可以根据不同瓦片的特点,结合具体的使用场景来确定使用方式。

  • 栅格瓦片

将地图中所有图层切分并存储为栅格图片的地图瓦片,支持 MongoDB 分布式存储、SMTiles 与 MBTiles 格式SuperMap UGC 格式和 GeoPackage 格式。其中,SuperMap UGC 格式是 SuperMap 各个产品间通用的传统栅格瓦片格式,相同版本的地图瓦片可以通用。分布式切图服务支持的“UGCV5”切片类型,就是指5.0版本原始缓存。  

此外,栅格瓦片的图片格式支持 PNG、PNG8、JPG_PNG、JPG、WebP(OTS 瓦片当前不支持 WebP 格式)。如果选择 PNG,且当前地图颜色值数小于等于256,SuperMap iServer 会自动将图片存为 PNG8 格式,以节约存储空间。

  • 矢量瓦片

将地图中的指定矢量图层以矢量瓦片的形式进行切分和存储,支持 SVTiles 格式

在地图服务的应用中,除了供用户访问浏览地图外,还有为用户提供查询、选择、高亮等操作的实际需求,这时就需要通过要素服务为用户提供上述功能。与地图服务需要通过缓存技术提升访问速度一样,要素服务也需要通过将矢量数据预先生成瓦片来提升客户端的渲染速度,因此矢量瓦片(Vector Tile)就诞生了。矢量数据在存储的时候,其体积比地图瓦片更小,更适合于地图中对时效性要求较高的地物要素的表达,如 POI 信息、路线信息等。常见的在线地图服务,如 Google Maps、百度地图等,都是采用了栅格瓦片做底图,叠加矢量瓦片的做法。

瓦片大小

SuperMap iServer 的分布式切图服务在生成预缓存时提供了 512*512 和 256*256 两种尺寸。

其中,使用 iClient 客户端的分块图层访问 SuperMap iServer 的地图服务时,默认使用的是 256*256 大小的图片。

比例尺

为了充分利用 SuperMap iServer 的分布式切图服务生成的预缓存,并能实现多级缩放,可以对一幅地图预先生成多个比例尺的缓存图片,在将 SuperMap iServer 客户端 SDK(for JavaScript)中的地图接口针对上述瓦片比例尺设置对应的比例尺数组(即将 Map 的比例尺数组 Scales 设置成与预瓦片比例尺相同),从而限定地图在指定比例尺内缩放,实现多级缩放的效果。

地理范围

用户可以为频繁访问的地图区域生成预缓存,然后根据需要为较少访问的地图区域实时生成缓存,以降低生成和存储缓存的成本。

例如,在访问世界地图时,人烟稀少的地区不是客户端所关注的地方,可以不生成缓存。这样就可以将地理范围指定为下图所示的区域: