TileJSON

TileJSON is an open standard for representing map metadata.

License

The text of this specification is licensed under a Creative Commons Attribution 3.0 United States License. However, the use of this spec in products and code is entirely free: there are no royalties, restrictions, or requirements.

Implementations

Authors

  • Konstantin Käfer
  • Young Hahn
  • Tom MacWright

Translations

简体中文

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

TileJSON 2.1.0

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

1. Purpose

This specification attempts to create a standard for representing metadata about multiple types of web-based layers, to aid clients in configuration and browsing.

2. File format

TileJSON manifest files use the JSON format as described in RFC 4627.

Implementations MUST treat unknown keys as if they weren't present. However, implementations MUST expose unknown key/values in their API so that API users can optionally handle these keys. Implementations MUST treat invalid values for keys as if they weren't present. If the key is required, implementations MUST treat the entire TileJSON manifest file as invalid and refuse operation.

{
// REQUIRED. A semver.org style version number. Describes the version of
// the TileJSON spec that is implemented by this JSON object.
"tilejson": "2.1.0", // OPTIONAL. Default: null. A name describing the tileset. The name can
// contain any legal character. Implementations SHOULD NOT interpret the
// name as HTML.
"name": "compositing", // OPTIONAL. Default: null. A text description of the tileset. The
// description can contain any legal character. Implementations SHOULD NOT
// interpret the description as HTML.
"description": "A simple, light grey world.", // OPTIONAL. Default: "1.0.0". A semver.org style version number. When
// changes across tiles are introduced, the minor version MUST change.
// This may lead to cut off labels. Therefore, implementors can decide to
// clean their cache when the minor version changes. Changes to the patch
// level MUST only have changes to tiles that are contained within one tile.
// When tiles change significantly, the major version MUST be increased.
// Implementations MUST NOT use tiles with different major versions.
"version": "1.0.0", // OPTIONAL. Default: null. Contains an attribution to be displayed
// when the map is shown to a user. Implementations MAY decide to treat this
// as HTML or literal text. For security reasons, make absolutely sure that
// this field can't be abused as a vector for XSS or beacon tracking.
"attribution": "<a href='http://openstreetmap.org'>OSM contributors</a>", // OPTIONAL. Default: null. Contains a mustache template to be used to
// format data from grids for interaction.
// See https://github.com/mapbox/utfgrid-spec/tree/master/1.2
// for the interactivity specification.
"template": "{{#__teaser__}}{{NAME}}{{/__teaser__}}", // OPTIONAL. Default: null. Contains a legend to be displayed with the map.
// Implementations MAY decide to treat this as HTML or literal text.
// For security reasons, make absolutely sure that this field can't be
// abused as a vector for XSS or beacon tracking.
"legend": "Dangerous zones are red, safe zones are green", // OPTIONAL. Default: "xyz". Either "xyz" or "tms". Influences the y
// direction of the tile coordinates.
// The global-mercator (aka Spherical Mercator) profile is assumed.
"scheme": "xyz", // REQUIRED. An array of tile endpoints. {z}, {x} and {y}, if present,
// are replaced with the corresponding integers. If multiple endpoints are specified, clients
// may use any combination of endpoints. All endpoints MUST return the same
// content for the same URL. The array MUST contain at least one endpoint.
"tiles": [
"http://localhost:8888/admin/1.0.0/world-light,broadband/{z}/{x}/{y}.png"
], // OPTIONAL. Default: []. An array of interactivity endpoints. {z}, {x}
// and {y}, if present, are replaced with the corresponding integers. If multiple
// endpoints are specified, clients may use any combination of endpoints.
// All endpoints MUST return the same content for the same URL.
// If the array doesn't contain any entries, interactivity is not supported
// for this tileset.
// See https://github.com/mapbox/utfgrid-spec/tree/master/1.2
// for the interactivity specification.
"grids": [
"http://localhost:8888/admin/1.0.0/broadband/{z}/{x}/{y}.grid.json"
], // OPTIONAL. Default: []. An array of data files in GeoJSON format.
// {z}, {x} and {y}, if present,
// are replaced with the corresponding integers. If multiple
// endpoints are specified, clients may use any combination of endpoints.
// All endpoints MUST return the same content for the same URL.
// If the array doesn't contain any entries, then no data is present in
// the map.
"data": [
"http://localhost:8888/admin/data.geojson"
], // OPTIONAL. Default: 0. >= 0, <= 22.
// An integer specifying the minimum zoom level.
"minzoom": 0, // OPTIONAL. Default: 22. >= 0, <= 22.
// An integer specifying the maximum zoom level. MUST be >= minzoom.
"maxzoom": 11, // OPTIONAL. Default: [-180, -90, 180, 90].
// The maximum extent of available map tiles. Bounds MUST define an area
// covered by all zoom levels. The bounds are represented in WGS:84
// latitude and longitude values, in the order left, bottom, right, top.
// Values may be integers or floating point numbers.
"bounds": [ -180, -85.05112877980659, 180, 85.0511287798066 ], // OPTIONAL. Default: null.
// The first value is the longitude, the second is latitude (both in
// WGS:84 values), the third value is the zoom level as an integer.
// Longitude and latitude MUST be within the specified bounds.
// The zoom level MUST be between minzoom and maxzoom.
// Implementations can use this value to set the default location. If the
// value is null, implementations may use their own algorithm for
// determining a default location.
"center": [ -76.275329586789, 39.153492567373, 8 ]
}

3. Caching

Clients MAY cache files retrieved from a remote server. When implementations decide to perform caching, they MUST honor valid cache control HTTP headers as defined in the HTTP specification for both tile images and the TileJSON manifest file.

TileJSON的更多相关文章

  1. Exploring the MapBox stack: MBTiles, TileJSON, UTFGrids and Wax

    转自:http://blog.thematicmapping.org/2012/11/exploring-mapbox-stack-mbtiles-tilejson.html In my last b ...

  2. UTFGrid

    UTFGrid UTFGrid is a specification for rasterized interaction data. As of version 1.2, it was remove ...

  3. Tilemill + tilestream + mapbox.js 自制地图

    感谢Mapbox,带来了一整套完整的地图方案. 你可以把你的地图放在Mapbox的网站上.也可以使用他们提供的开源软件自己架设地图服务. Mapbox的地图方案包括web,ios和android. 不 ...

  4. leaflet地图库

    an open-source JavaScript libraryfor mobile-friendly interactive maps Overview Tutorials Docs Downlo ...

  5. openLayers 3知识回顾

    openlayers 知识 前段时间帮助同事重构一个地图类的项目,然后就学习了openLayer3这个框架,但是官网上没有中文版,也没有详细的例子解释,我只能遇到看不懂的就翻译成中文来用,为了方便以后 ...

  6. ol图层支持的数据源

    ol.source.BingMaps,必应地图的数据: ol.source.Cluster,聚族矢量数据: ol.source.ImageCanvas,数据来源是一个canvas元素,其中数据是图片: ...

  7. openLayers,常见地图实例

    http://openlayers.org/en/master/examples/epsg-4326.html -- 标尺 http://openlayers.org/en/master/exampl ...

  8. OpenLayers学习笔记(六)— 拖拽叠加层overlayer

    是在官网例子基础上增加的拖拽功能 GitHub:八至 作者:狐狸家的鱼 本文链接:拖拽叠加层overlayer 全部代码 <!DOCTYPE html> <html> < ...

  9. OpenLayers 3 之 地图图层数据来源(ol.source)详解

    原文地址 source 是 Layer 的重要组成部分,表示图层的来源,也就是服务地址.除了在构造函数中制定外,可以使用 layer.setSource(source) 稍后指定.一.包含的类型 ol ...

随机推荐

  1. iOS 方法修饰符

     一.NS_DESIGNATED_INITIALIZER 用来修饰init方法,被修饰的方法称为designated initializer:没有被这个修饰的init方法称为convenience i ...

  2. [每日Linux]Linux下xsell和xftp的使用

    实验缘由: 1.xsell在Linux下的作用就是远程登录的一个界面,也就是实现访问在Windows下访问Linux服务器的功能.之前在数据挖掘实验中因为自己电脑的内存不够,曾经使用过实验室的服务器跑 ...

  3. 警惕!高版本VS发布时预编译导致Mono中Razor找不到视图

    早前一段时间,一位朋友在Q群里面找到我,说它按照<Linux.NET学习手记>的操作,把一个ASP.NET MVC 4.0的项目部署到Mono之后出现Razor无法找到视图的现象.当时费了 ...

  4. 锤子OneStep及BigBang使用体验

    令人期待的Smartisan OS v3.1.2终于推送了,第一时间下载了更新.几乎花了半个小时才升级完毕,捧着还热乎的手机,赶忙体验一下传说中的两大杀器:OneStep以及BigBang. 先说On ...

  5. 设计上如何避免EMC问题

    最近经常被问到EMC相关的问题,比如怎么设计才能避免EMC的问题,我想经常关注高速先生的同鞋们有机会肯定也会问到这个问题.首先这是一个系统 性的问题,不是那么好回答,尤其是对于聚焦在高速信号这个领域而 ...

  6. hibernate一对一主键单向关联

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  7. 如何优雅地使用Sublime Text

    Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比于难于上手的Vim,浮肿沉重的Eclip ...

  8. salesforce 零基础学习(六十)Wizard样式创建数据

    项目中表之间关联关系特别多,比如三个表中A,B,C  C作为主表,A,B作为从表,有时候C表需要创建数据时,同时需要创建A,B两个表的数据,这种情况下,使用Wizard样式会更加友好. 以Goods_ ...

  9. TCP同步与异步,长连接与短连接【转载】

    原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896   这是今天看到的一篇讲到T ...

  10. springmvc环境搭建以及常见问题解决

    1.新建maven工程 a)  打开eclipse,file->new->project->Maven->Maven Project b)  下一步 c)   选择创建的工程为 ...