TileJSON
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的更多相关文章
- 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 ...
- UTFGrid
UTFGrid UTFGrid is a specification for rasterized interaction data. As of version 1.2, it was remove ...
- Tilemill + tilestream + mapbox.js 自制地图
感谢Mapbox,带来了一整套完整的地图方案. 你可以把你的地图放在Mapbox的网站上.也可以使用他们提供的开源软件自己架设地图服务. Mapbox的地图方案包括web,ios和android. 不 ...
- leaflet地图库
an open-source JavaScript libraryfor mobile-friendly interactive maps Overview Tutorials Docs Downlo ...
- openLayers 3知识回顾
openlayers 知识 前段时间帮助同事重构一个地图类的项目,然后就学习了openLayer3这个框架,但是官网上没有中文版,也没有详细的例子解释,我只能遇到看不懂的就翻译成中文来用,为了方便以后 ...
- ol图层支持的数据源
ol.source.BingMaps,必应地图的数据: ol.source.Cluster,聚族矢量数据: ol.source.ImageCanvas,数据来源是一个canvas元素,其中数据是图片: ...
- openLayers,常见地图实例
http://openlayers.org/en/master/examples/epsg-4326.html -- 标尺 http://openlayers.org/en/master/exampl ...
- OpenLayers学习笔记(六)— 拖拽叠加层overlayer
是在官网例子基础上增加的拖拽功能 GitHub:八至 作者:狐狸家的鱼 本文链接:拖拽叠加层overlayer 全部代码 <!DOCTYPE html> <html> < ...
- OpenLayers 3 之 地图图层数据来源(ol.source)详解
原文地址 source 是 Layer 的重要组成部分,表示图层的来源,也就是服务地址.除了在构造函数中制定外,可以使用 layer.setSource(source) 稍后指定.一.包含的类型 ol ...
随机推荐
- 第11章 Linux服务管理
1. 服务分类 (1)Linux的服务 ①Linux中绝大多数的服务都是独立的,直接运行于内存中.当用户访问时,该服务直接响应用户,其好处是服务访问响应速度快.但不利之处是系统中服务越多,消耗的资源越 ...
- angularJS(6)
angularJS(6) 一:angularJs的事件. 1.ng-click指令定义了AngularJS点击事件. <div ng-app="myapp" ng-contr ...
- 用ffmpeg快速剪切和合并视频
如果直接找视频剪切和合并视频的软件,通常出来的都是大的视频编辑软件或者是有图形界面的剪切软件,大型一点的功能太多安装麻烦,小型一点的功能可能不齐全. 只是简单的剪切或者一下合并一下,还是ffmpeg这 ...
- caffe的python接口学习(7):绘制loss和accuracy曲线
使用python接口来运行caffe程序,主要的原因是python非常容易可视化.所以不推荐大家在命令行下面运行python程序.如果非要在命令行下面运行,还不如直接用 c++算了. 推荐使用jupy ...
- Ubuntu(Linux) + mono + xsp4 + nginx +asp.net MVC3 部署
折腾了一下,尝试用Linux,部署mvc3. 分别用过 centos 和 ubuntu ,用ubuntu是比较容易部署的. 操作步骤如下: 一.终端分别如下操作 sudo su ->输入密码 a ...
- SQL SERVER全面优化-------Expert for SQL Server 诊断系列
现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...
- [PHP源码阅读]array_slice和array_splice函数
array_slice和array_splice函数是用在取出数组的一段切片,array_splice还有用新的切片替换原删除切片位置的功能.类似javascript中的Array.prototype ...
- 【腾讯Bugly干货分享】聊聊苹果的Bug - iOS 10 nano_free Crash
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/hnwj24xqrtOhcjEt_TaQ9w 作者:张 ...
- DTO – 服务实现中的核心数据
在一个Web服务的实现中,我们常常需要访问数据库,并将从数据库中所取得的数据显示在用户页面中.这样做的一个问题是:用于在用户页面上展示的数据和从数据库中取得的数据常常具有较大区别.在这种情况下,我们常 ...
- Linux简单指令操作
Linux CentOS运维中,常用的操作和命令记录下: 1.DNS设置 在Linux服务器上,当我们ping出现这个错误时:ping: unknown host,很大可能是系统的DNS没有设置或者设 ...