分块图层和动态图层
栅格图片的两种分类方式
SuperMap iClient 的栅格图层采用了如下分类和命名:分块动态图层( TiledDynamicLayer )、分块缓存图层( TiledCachedLayer )和(不分块)动态图层( DynamicLayer ),组合方式如图1。
图1 栅格图层
动态图层(DynamicLayer)是即时生成的图片,而不是在服务器上预先缓存的图片。当用户向服务器请求地图服务时,服务器根据接受到的参数(分块动态图层参数主要为图片索引值和比例尺级别,(不分块)动态图层参数主要为请求的地理范围和图片大小)调用底层服务,底层服务经过参数计算,实时地生成像素点,这些像素点构成图片,返回到服务器,服务器再传递给客户端。动态图层的优点在于当用户需要实时数据,如某地段交通流量分析时,数据更新及时。
缓存图层(CachedLayer)是在服务器上预先存好的图片,当用户向服务器发送请求时,服务器根据接收到的 url,直接将图片发布给用户,而不需要再调用底层的计算功能,大大节约了响应时间。缓存图层的优点在于当用户对响应时间要求较高而对实时性要求较低时,该图层比动态图层网络访问效率更高。
分块图层(TiledLayer)是根据不同比例尺要求将一个完整的地图切割成多个相同大小的正方形图片,地图最终呈现时就是由这些块图块拼合而成。客户端程序将当前地图控件要显示的每个分块图片的 url 发送给服务器,服务器会根据 url 中 x, y, scale(level)三个关键参数进行索引,再将索引到的图片返回到客户端,例如:url 为 http://server:port/**handler/url?(x=1&y=2&4)即客户端从服务器上请求比例尺级别为4级且索引号为(1,2)的图片,索引结构如图2。分块图层的优点在于用户体验效果好,使用分块图层的方式获取地图服务,由于整张地图被切割为一个个小图片,因此用户在浏览地图时,看到一幅地图会逐步的由多个图块拼接而成,缩短了等待一整张地图出图的时间,提升了用户体验。如图3,白色区域是还未显示的图片,这样就可以减少用户等待时间,先了解到部分地区的情况。
图 2 图 3
我们在理解了以上四种图层后,对于他们的组合:分块动态图层 ( TiledDynamicLayer )、分块缓存图层( TiledCachedLayer )和(不分块)动态图层( DynamicLayer )也就比较容易理解,即同时具备两种特征。
(不分块)动态图层( DynamicLayer ):动态生成只有一张图片的图层,该张图片为即时生成,而非事先预缓存显示。
分块缓存图层( TiledCachedLayer ):将一个完整的地图切割成多个相同大小的正方形图片,地图最终呈现时就是由这些图片拼合而成。之所以称之为缓存图层,是因为这些正方形图片是事先切好,直接从服务器获取。
分块动态图层( TiledDynamicLayer ):将一个完整的地图切割成多个相同大小的正方形图片,地图就是由这些图片拼合而成最终呈现的。之所以称之为动态图层,是因为这些正方形图片是即时生成,而非事先切好。