栅格图像是由一组像素组成的图像,每个像素都有一个唯一的行列坐标和值,栅格图像的像素值可以是数字、字符等,可以表示各种地理特征和属性。在栅格图像中,像素是图像的基本单位。

GIS中常见的栅格数据:GIS 系统的栅格数据有很多种,有卫星影像、数字高程模型、数字正射影像、扫描文件、数据栅格图形、 图形文件等。常见格式有.jpg、.png、.tif 等。

栅格图像的几个关键概念:

1)分辨率:栅格图像中像元的大小和数量,通常用像元大小来表示。分辨率越高,表示像元越小,图像越清晰,但文件越大。

2)像素值:栅格图像中每个像元的数值,它可以表示各种地理特征和属性,例如高程、温度、植被等。

3)波段:栅格图像中的不同光谱波段。遥感图像通常包含多个波段,每个波段代表不同的光谱信息,可以用于分析和提取地物特征等。

4)颜色:对于扫描的彩色图像,将需要大量颜色来准确地渲染原始源图稿的图像再现。

5)文件大小:为了准确地再现光栅图像文件,图形软件必须跟踪大量信息,包括像素集合中每个像素的确切位置和颜色,这将导致光栅图形文件很大。更高的分辨率(dpi)和更大的颜色深度会产生更大的文件大小。

6)文件格式:常见的光栅图像格式包括BMP、PCX、TIFF、JPEG、GIF、PNG、PSD、CPT等。

栅格瓦片

使用栅格瓦片可以快速加载和显示地图数据,提高地图渲染效率、节省数据传输带宽、支持多种地图服务、支持多种地图数据格式。

栅格瓦片存储

文件系统存储

将栅格瓦片大多以文件的形式存储在文件系统中,每个瓦片对应一个文件。文件系统存储具有简单、易用、可扩展等优点,可以快速实现瓦片地图的构建和部署。

常见的文件系统存储格式包括XYZ、TMS等,其文件目录组织大多如'tile_name/z/x/y.png'或'tile_name/z/x/-y.png'的方式。

数据库存储

将栅格瓦片存储在数据库中,可以使用各种数据库管理系统,如MySQL、PostgreSQL、SQLite等。数据库存储具有高效、可管理、可查询等优点,常见的数据库存储格式包括MBTiles、GeoPackage等。

MBTiles

MBTiles 是一种开放的瓦片地图存储格式,它将瓦片地图切片存储在 SQLite 数据库中。MBTiles可以存储任意瓦片地图数据,支持多种数格式(如PNG、JPEG等),可以进行离线地图应用、进行地图数据压缩等。MBTiles用于数据即时使用和高效传输,被广泛应用于WebGIS、移动端地图等应用领域。

MBTiles 数据库包含两个表格:tiles和metadata。tiles表格存储瓦片数据,包括瓦片的行列号、缩放级别、瓦片数据等。metadata表格存储一些元数据信息,例如地图名称、版本、作者,描述等

创建tiles表的SQL语句:

CREATE table tiles (zoom_level integer, tile_column integer, tile_row integer, tile_data blob);

栅格瓦片服务发布

栅格瓦片的存储有两种方式:以文件形式存放在文件目录中和使用mbtiles存储在数据库中,所以发布形式也会因存储形式的不同而不同。

文件型:

文件型可以通过Nginx、Live Server、Tomcat 等进行发布。

文件型发布是将存储在文件系统中的栅格瓦片,通过Web服务器进行发布。这种方式不需要提供专门的后端接口,操作简单,比较适用于小规模的地图服务。缺点是,这种方式由于瓦片数量比较多,占用磁盘空间大,每次部署都需要将大量瓦片复制到服务器上,部署比较麻烦和耗时。

数据库

存储在mbtiles中的切片,不仅可以通过后端程序提供接口服务,还可以作为移动端离线底图。

数据库发布是将瓦片存储在数据库中,通过后端服务向外提供接口调用,支持瓦片查询等操作。这种方式优点是,通过数据库管理瓦片,在部署时,只需要将数据库文件进行复制,而不需要对瓦片直接复制,且数据库检索速度更快,能够支持瓦片的高效率查询。缺点是需要开发专门的接口服务,且需要对数据库操作、服务端开发等有一定的基础,如通过添加索引来提高数据检索速度。