Skip to content

Latest commit

 

History

History
113 lines (87 loc) · 5.6 KB

README-zh.md

File metadata and controls

113 lines (87 loc) · 5.6 KB

TileJSON 2.1.0

本文档中的“必须”、“必须不”、“必备”、"应该"、“不应该”、“建议”、“可以”、“可选”的含义参照RFC 2119

1. 目的

本规范提出一种技术标准,来描述多种类型的网络地图图层的元数据信息,以方便客户端进行配置和浏览。

2. 文件格式

TileJSON描述文件采用JSON格式,参见RFC 4627。

本规范的实现必须忽略掉未知key。但是,实现必须在他们的API中暴露出 这些未知的key/values,使得API用户可以选择性地处理这些keys。 实现必须忽略keys的无效values。如果key是必选的,实现必须认为整个 TileJSON描述文件无效并且拒绝进一步处理。

{
    // **必选**。表示语义化的版本号。描述本JSON对象所遵守的TileJSON版本。
    "tilejson": "2.1.0",

    // **可选**。默认值:null。表示瓦片集的名称。名称可以是任何合法字符。
    // 实现**不应该**将此名称当做HTML来解析。
    "name": "compositing",

    // **可选**。默认值:null。表示瓦片集的描述信息。描述可以是任何合法字符。
    // 实现**不应该**将此描述当做HTML来解析。
    "description": "A simple, light grey world.",

    // **可选**。默认值:"1.0.0"。表示语义化的版本号。当瓦片发生更改时,次版本号
    // **必须**相应地更改。这可能导致标签的变化。因此,实现方能够在次版本号变化时
    // 清除缓存。更新级别的更改,**必须**限制在单块瓦片之内。
    // 当瓦片更改较大时,主版本号**必须**增加。
    // 实现**必须不**要使用不同主版本号的瓦片。
    "version": "1.0.0",

    // **可选**。默认值:null。包含地图的所有者信息。
    // 实现**可以**把这部分内容当做HTML或者纯文本。
    // 处于安全方面的原因,要绝对确保本字段的不会被用来进行XSS攻击或beacon跟踪。
    "attribution": "<a href='http://openstreetmap.org'>OSM contributors</a>",

    // **可选**。默认值:null。包含一个mustache模板,用来格式化grids数据来完成交互。
    // 参见https://github.com/mapbox/utfgrid-spec/tree/master/1.2的交互部分。
    "template": "{{#__teaser__}}{{NAME}}{{/__teaser__}}",

    // **可选**。默认值:null。包含地图图例信息。
    // 实现**可以**把这部分内容当做HTML或者纯文本。
    // 处于安全方面的原因,要绝对确保本字段的不会被用来进行XSS攻击或beacon跟踪。
    "legend": "Dangerous zones are red, safe zones are green",

    // **可选**。默认值:"xyz"。可以是"xyz"或"tms"。主要影响瓦片坐标的y轴方向。
    // 默认为global-mercator(Spherical Mercator)坐标系。
    "scheme": "xyz",

    // **必选**。表示一组瓦片资源。
    // 如果存在{z}、{x}和{y},它们将会被相应的整数替换。
    // 如果指定了多个资源,客户端可以使用任意的资源组合。
    // 所有的资源**必须**为相同的URL返回相同的内容。
    // 本数组**必须**至少包含一个资源。
    "tiles": [
        "http://localhost:8888/admin/1.0.0/world-light,broadband/{z}/{x}/{y}.png"
    ],

    // **可选**。默认值:[]。表示一组交互资源。
    // 如果存在{z}、{x}和{y},它们将会被相应的整数替换。
    // 如果指定了多个资源,客户端可以使用任意的资源组合。
    // 所有的资源**必须**为相同的URL返回相同的内容。
    // 如果本数组没有任何内容,那么说明本瓦片集不支持交互数据。
    // 参见https://github.com/mapbox/utfgrid-spec/tree/master/1.2的交互部分
    "grids": [
        "http://localhost:8888/admin/1.0.0/broadband/{z}/{x}/{y}.grid.json"
    ],

    // **可选**。默认值:[]。表示一组GeoJSON格式的数据文件。
    // 如果存在{z}、{x}和{y},它们将会被相应的整数替换。
    // 如果指定了多个资源,客户端可以使用任意的资源组合。
    // 所有的资源**必须**为相同的URL返回相同的内容。
    // 如果本数组没有任何内容,那么地图上不会呈现数据内容。
    "data": [
        "http://localhost:8888/admin/data.geojson"
    ],

    // **可选**。默认值:0。值域范围[0, 22]。
    // 表示最小缩放级别的一个整数。
    "minzoom": 0,

    // **可选**。默认值:22。值域范围[0, 22]。
    // 表示最大缩放级别的一个整数。**必须**大于等于minzoom
    "maxzoom": 11,

    // 表示地图瓦片的最大范围。这个范围**必须**覆盖到所有的缩放级别。
    // 范围用WGS84坐标系下的经纬度来表示,顺序为左、下、右、上。
    // 范围值可能是整数或者浮点数。
    "bounds": [ -180, -85.05112877980659, 180, 85.0511287798066 ],

    // **可选**。默认值:null。
    // 第一个值是经度,第二个是纬度(都为WGS84坐标系),第三个是表示缩放级别的整数。
    // 经度和纬度**必须**在bounds范围内。缩放级别**必须**在minzoom和maxzoom之间。
    // 实现可以根据这个值设置地图的默认显示位置。
    // 如果这个值为null,实现可以根据自己的算法自行决定默认位置。
    "center": [ -76.275329586789, 39.153492567373, 8 ]
}

3. 缓存

客户端可以缓存从远程服务器获取的文件。当实现决定采用缓存措施时,必须 遵从为瓦片数据和TileJSON描述文件定义的有效HTTP缓存控制头。