UTFGrid 格式的属性瓦片

发送反馈


UTFGrid 是由 MapBox 制定的一种将属性地图数据存储到 SQLite 数据库中并可快速使用,管理和分享的规范。该规范由 MapBox 制定,详见 https://github.com/mapbox/utfgrid-spec

UTFGrid 采用 Unicode 字符将地理要素信息通过 UTF-8 编码成非常节省空间的数据切片,该切片叫做 Grid,存储在 SQLite 数据库中。

SuperMap iServer 为了满足自身应用的需求,基于原规范对 UTFGrid 中的内容进行了扩展,扩展后的 .utfgrid 文件仍保留元数据表“metadata”,并支持任意坐标系和任意分辨率。

UTFGrid 文件的文件的命名由地图名、图层名、EPSG Code、切片宽度和高度、pixCell 及.utfgrid 后缀组成(如:World_Countries@World_4326_256X256_8.utfgrid),其中 EPSG Code 参见:CoordSysType,pixCell 参见表2中的 pixCell。

数据库表结构如下图所示:

metadata 元数据表采用键值对的形式来存储地图属性数据的相关设置,包括两个文本类型的字段”name”和”value”,与 utfgrid1.0.0 一致。表结构如图1所示:

表1 metadata 元数据表举例

name

value

name World

layerName

Countries@World

version 1.0.0
description World created on 2013-07-23 17:27:18 by SuperMap iServer
format json
bounds

-180.000,-90.000,180.000,90.000

ext_spec_version 201310
axis_origin -180.0,90.0

axis_positive_direction

RightDown

crs_wkid

4326
crs_wkt

GEOGCS["GCS_WGS_1984",

DATUM["D_WGS_1984",

SPHEROID["WGS_1984",6378137.0,298.2572235630001,AUTHORITY["EPSG","7030"]],

AUTHORITY["EPSG","6326"]],

PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],

UNIT["DEGREE",0.017453292519943295],

AUTHORITY["EPSG","4326"]]

tile_height 256
tile_width 256
resolutions 0.34886137129
scales

1.4677821811243212E8

pixCell

8

metadata 元数据表的各字段(keys)说明如表2所示:

表2 metadata 元数据表各字段描述

字段名称 是否必须 是否 iServer 扩展 说明
name 地图的英文名称,如果地图名称为中文会自动转换为中文名称的拼音。

layerName

图层名称。
version UTFGrid 版本规范,UTFGrid 规范的版本是 1.0.0。
description 描述信息。
format UTFGrid 格式:json,html,jsonp,rjson。
bounds 用于获取属性数据的地图范围,其单位与地图单位保持一致。iServer 中 bounds 的格式为:左,下,右,上,例如:-180,-85,180,85。
ext_spec_version SuperMap iServer 基于 MBTiles 规范扩展的版本,例如这里是:201310。
axis_origin 切图原点的位置。
axis_positive_direction 坐标系中坐标轴的正方向的枚举类型(RightDown, RightUp, LeftDown, LeftUp),例如:x 轴向右 y 轴向下 RightDown。
crs_wkid 坐标系的 EPSG Code(-1000为用户自定义坐标系,0为普通平面坐标系)。
crs_wkt 用 wkt 表示的地理坐标系信息。(wkt:由开放地理空间联盟(OGC)制定的一种文本标记语言,详见:http://docs.geotools.org/stable/javadocs/org/opengis/referencing/doc-files/WKT.html)
tile_height 格网高度,通常为256。
tile_width 格网宽度,通常为256。
resolutions 分辨率集合,各级瓦片对应的分辨率。
scales 各级分辨率对应的比例尺集合。
pixCell 格网中每个单元格的像素宽度。

grid_utfgrid 表用来记录 utfgrid 中的 grid_id 和 utfgrid 数据,表结构如下所示:

表3 grid_utfgrid 表各字段描述

字段名称 数据类型 描述
grid_id TEXT 格网标识
grid_utfgrid BOLB UTFGrid 数据

表内容举例如下:

map 表用来记录每个格网的行列号,分辨率,格网对应 id,比例尺,瓦片级别,瓦片创建时间信息,表结构如下所示:

表4 grid_utfgrid 表各字段描述

字段名称 数据类型 描述
zoom_level integer 瓦片所在级别,-1表示自定义比例尺集。
resolution varchar 分辨率,瓦片对应的分辨率。
tile_colum integer 瓦片列号。

tile_row

integer

瓦片行号。
grid_id TEXT 格网标识。
create_time TEXT 瓦片创建时间。

表内容举例如下:

keymap 表用来记录地理要素信息和 key_name 值,每个地理要素对应一个 key_name 值,也是该地理要素的 SMID 值,表结构如下所示

表5 keymap 表各字段描述

字段名称 数据类型 描述

key_name

TEXT UTFGrid 的标识。

key_json

BOLB 地理要素信息的 json 格式数据。

表内容举例如下:

grid_key 表用来记录每个格网对应哪些 key_name 值,一个 grid_id 对应多个 key_name,即一个格网中有多个地理要素,表结构如下所示:

表6 grid_key 表各字段描述

字段名称 数据类型 描述

grid_id

TEXT 格网标识。

key_name

integer

key 名称。

表内容举例如下: