tms

https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

1、Slippy Map 和tms的区别

Slippy Map 和 TMS(Tile Map Service)在瓦片组织和命名上有几个关键区别:

坐标原点

  • Slippy Map

    • 坐标原点在左上角。
    • Y 轴从上到下增加。
  • TMS

    • 坐标原点在左下角。
    • Y 轴从下到上增加。

瓦片行列号

  • Slippy Map

    • URL 格式为 /{z}/{x}/{y}.png,其中 Y 从上到下增加。
  • TMS

    • URL 格式为 /{z}/{x}/{y}.png,但 Y 需要进行翻转计算,因为 Y 从下到上增加。

Y 轴计算

  • Slippy Map

    • 使用正常的 Y 值。
  • TMS

    • Y 值需要翻转,计算方式为 ( Y = (2^Z - 1) - \text{slippy_y} )。

应用场景

  • Slippy Map

    • 常用于动态加载的在线地图,如 OpenStreetMap 和 Google Maps。
  • TMS

    • 多用于静态地图服务和 GIS 应用中。

总结

尽管两者都使用瓦片和缩放级别的概念,但它们的坐标系统和 Y 轴方向存在显著差异。这些差异影响了瓦片的请求和显示方式。

2、Slippy map tilenames

Slippy Map 瓦片命名方案是广泛用于 Web 地图(如 OpenStreetMap 和 Google Maps)的瓦片系统。以下是它的关键特征:

特点

  • 瓦片大小

    • 每个瓦片是 256x256 像素。
  • 坐标原点

    • 原点在左上角。
  • Y 轴方向

    • Y 轴从上到下增加。
  • 瓦片行列号

    • 使用 (Z, X, Y) 来表示瓦片,其中:
      • ( Z ) 是缩放级别。
      • ( X ) 是瓦片的列号。
      • ( Y ) 是瓦片的行号。

计算公式

  • X 和 Y 的范围

    • ( X ) 和 ( Y ) 的范围是从 0 到 ( 2^Z - 1 )。
  • 瓦片行列号计算

    • 给定一个经纬度 ((\text{lon}, \text{lat})) 和缩放级别 ( Z ):
      • ( X = \left\lfloor \frac{{\text{lon} + 180}}{360} \times 2^Z \right\rfloor )
      • ( Y = \left\lfloor \left(1 - \frac{{\ln(\tan(\text{lat}) + \sec(\text{lat}))}}{\pi}\right) \times 2^{Z-1} \right\rfloor )

URL 格式

  • 瓦片通常通过 URL 请求,例如:
    http://{server}/{z}/{x}/{y}.png
    

总结

Slippy Map 瓦片命名方案简洁且高效,适合动态 Web 地图的快速加载和显示。

3、openlayer 默认瓦片组织方式

OpenLayers 默认使用的瓦片组织方式与 Google Maps 相同,采用 XYZ 瓦片坐标系。具体特点如下:

1. 坐标系

  • XYZ 坐标系
    • Z 代表缩放级别,X 和 Y 分别代表瓦片的列和行。
    • Y 轴从地图的北部开始,向南递增。

2. 投影方式

  • Web 墨卡托投影
    • 使用 EPSG:3857 投影(Spherical Mercator),适合全球在线地图。

3. 瓦片大小

  • 标准瓦片大小
    • 每个瓦片通常是 256x256 像素。

4. 缩放级别

  • 缩放级别
    • 从 0 开始,级别越高,地图的分辨率越高,细节越多。

5. 瓦片请求

  • URL 请求格式
    • 瓦片通过 URL 请求,通常包含 Z、X、Y 参数。例如:
      http://{server}/{layer}/{z}/{x}/{y}.png
      
    • 这种请求方式使得客户端可以动态加载所需的瓦片。

6. 瓦片缓存

  • 缓存机制
    • 支持浏览器端和服务器端缓存,提高地图加载速度和性能。

OpenLayers 的这种瓦片组织方式便于与其他主流地图服务(如 Google Maps、Bing Maps)进行集成和互操作。

4、tms 地图组织

TMS(Tile Map Service)是一种标准化的地图瓦片服务协议,其组织方式详细如下:

1. 坐标系

  • 瓦片坐标系
    • 使用 ZXY 坐标系,其中 Z 是缩放级别,X 和 Y 是瓦片的列和行。
    • Y 轴从地图的南部开始,向北递增。这与 Google Maps 的瓦片组织方式相反。

2. 投影方式

  • Web 墨卡托投影
    • 使用 EPSG:3857 投影,也称为 Spherical Mercator。它将地球投影到一个平面上,适合在线地图的展示。

3. 瓦片大小

  • 标准瓦片大小
    • 每个瓦片通常是 256x256 像素。这个大小在大多数情况下提供了良好的性能和平衡的细节。

4. 缩放级别

  • 缩放级别
    • 缩放级别从 0 开始,级别越高,地图的细节越多。
    • 每增加一级缩放,地图的分辨率增加一倍,瓦片数量也增加四倍。

5. 瓦片请求

  • URL 请求格式
    • 瓦片通过 URL 请求,URL 通常包含 Z、X、Y 参数。例如:
      http://{server}/{layer}/{z}/{x}/{y}.png
      
    • 这种结构化的请求方式便于客户端动态请求所需的地图瓦片。

6. 瓦片缓存

  • 缓存机制
    • 瓦片通常会被缓存,以减少服务器负载和加快客户端的响应速度。

7. 优缺点

  • 优点

    • 简单易用,标准化程度高。
    • 易于与其他地图服务集成。
  • 缺点

    • 由于 Y 轴方向与其他一些地图服务相反,可能需要额外的转换工作。

TMS 是一种广泛应用的瓦片地图服务协议,适合用于需要标准化地图瓦片存储和访问的应用场景。

5、mapbox 矢量切片 遵循Slippy Map规范吗

Mapbox 矢量切片使用的瓦片系统与 Slippy Map 规范类似。它们都采用相同的坐标和缩放机制,即使用 ((z, x, y)) 来表示瓦片的位置和缩放级别。不过,Mapbox 矢量切片传输的是矢量数据,而不是栅格图像。

因此,虽然数据类型不同,但它们在瓦片坐标系统上是兼容的。

XYZ 瓦片方案规范详解**

1. 什么是 XYZ 瓦片方案?

XYZ 瓦片方案是一种广泛应用于 Web 地图服务的瓦片切片方式,它按照特定的规则将地图分割成固定大小的瓦片(通常是256x256像素),并通过 X(列)、Y(行)、Z(缩放等级)三个参数来定位和获取瓦片数据。这种方式也被称为“Slippy Map”瓦片方案,最初由 OpenStreetMap 和其他在线地图应用推广,现已成为事实上的行业标准。

2. XYZ 瓦片的坐标体系:

  • Z(缩放等级):表示地图的缩放级别,通常从 0 开始,数字越大,地图细节越丰富。每增加一级缩放,地图的细节会增加一倍,瓦片数量会以指数方式增长。

  • X(列):表示瓦片在水平方向上的索引,从地图的最左侧(西经180度)开始,向右(东经180度)递增。

  • Y(行):表示瓦片在垂直方向上的索引,从地图的最上方(北纬85.0511度)开始,向下(南纬85.0511度)递增。

3. 瓦片 URL 格式:

XYZ 瓦片通常通过标准化的 URL 格式来访问:

http://{服务器地址}/{缩放等级}/{列}/{行}.{格式}

例如:

https://tile.openstreetmap.org/10/512/384.png

其中:

  • {缩放等级}:表示 Z 值,如 10。
  • {列}:表示 X 值,如 512。
  • {行}:表示 Y 值,如 384。
  • {格式}:通常为 pngjpgpbf(用于矢量瓦片)。

4. 坐标计算方法:

要将地理坐标(经度和纬度)转换为 XYZ 瓦片坐标,需要以下步骤:

  • 投影转换:XYZ 瓦片方案使用 Web 墨卡托投影(EPSG:3857),需要将经纬度坐标转换为墨卡托投影坐标。

  • 瓦片索引计算:

    n = 2 ^ zoom
    x_tile = n * ((longitude + 180) / 360)
    y_tile = n * (1 - (ln(tan(latitude_rad) + sec(latitude_rad)) / π)) / 2
    

    其中:

    • zoom:缩放等级 Z。
    • latitude_rad:纬度的弧度值。
    • x_tiley_tile:对应的瓦片索引,需要取整。

5. XYZ 与 TMS 的区别:

  • Y 轴方向相反:在 XYZ 瓦片方案中,Y 轴从上到下递增,即顶部为 0,向下增加;而在 TMS(Tile Map Service)瓦片规范中,Y 轴从下到上递增。

  • URL 结构:尽管两者的 URL 结构类似,但在使用时需要注意 Y 轴的差异,必要时需要进行坐标转换。

6. XYZ 瓦片方案的优点:

  • 简单直观:通过标准的 URL 结构,客户端可以方便地请求所需的瓦片。

  • 高效缓存:统一的瓦片命名和结构便于缓存机制的实现,提升地图加载速度。

  • 广泛支持:主流的地图服务和开发库(如 Google Maps、OpenStreetMap、Leaflet、OpenLayers 等)都支持 XYZ 瓦片方案。

7. 应用案例:

  • 在线地图服务:如 Google Maps、Bing Maps、OpenStreetMap 等都使用了 XYZ 瓦片方案,为全球用户提供在线地图浏览。

  • Web GIS 开发:开发者在使用 Leaflet、OpenLayers、Mapbox GL JS 等库开发 Web 地图应用时,通常使用 XYZ 瓦片加载底图或叠加图层。

  • 自建瓦片服务:机构或个人可以使用 Mapnik、TileMill、GeoServer 等工具生成符合 XYZ 方案的瓦片,搭建自有的地图服务。

8. 注意事项:

  • 坐标转换:在需要与其他瓦片方案(如 TMS)互通时,需注意 Y 轴方向的差异,可能需要对 Y 值进行转换:

    y_xyz = (2 ^ zoom) - 1 - y_tms
    
  • 投影一致性:确保地图数据使用 Web 墨卡托投影,以保证瓦片的正确显示和位置对应。

  • 瓦片格式:根据需求选择合适的瓦片格式,Raster 瓦片通常使用 pngjpg,Vector 瓦片则使用 pbf 格式。

总结:

XYZ 瓦片方案是一种高效、标准化的地图切片和访问方式,已成为 Web 地图领域的主流规范。通过理解其坐标体系、瓦片结构和使用方法,开发者和 GIS 专业人员可以更好地应用和定制地图服务,满足多样化的业务需求。

OpenStreetMap(OSM)地图是否使用 TMS 瓦片规范?**

OpenStreetMap(OSM)不使用 TMS(Tile Map Service)瓦片规范,而是采用了更加广泛使用的 XYZ 瓦片方案。虽然 OSM 的瓦片数据可以经过处理后以 TMS 方式访问,但官方提供的瓦片服务以及大多数第三方瓦片服务器使用的都是 XYZ 方案。


详细解释:

  1. 瓦片方案的区别:

    • XYZ 瓦片方案:

      • Y 轴方向:上到下 递增,即顶部为 Y=0,向下 Y 值增加。
      • 使用情况:XYZ 是当今最常用的瓦片方案,被 Google Maps、Bing Maps、OSM 等主流在线地图服务采用。
      • 优点:符合大多数计算机图形坐标系,Y 轴方向与屏幕坐标一致,使用直观。
    • TMS 瓦片规范:

      • Y 轴方向:下到上 递增,即底部为 Y=0,向上 Y 值增加。
      • 使用情况:TMS 是由 OSGeo 定义的规范,主要用于一些专业 GIS 领域和特定的开源项目。
      • 特点:Y 轴方向与地理坐标一致,但与屏幕坐标相反。
  2. OSM 的瓦片服务:

    • 官方瓦片服务器:

      • OSM 的官方瓦片服务器(https://tile.openstreetmap.org/{z}/{x}/{y}.png)使用 XYZ 方案。
      • 瓦片的组织方式和命名遵循 XYZ 的规则,客户端请求时按照 XYZ 方案获取瓦片。
    • 第三方瓦片服务:

      • 大多数第三方为 OSM 数据提供的瓦片服务也遵循 XYZ 方案,以确保与主流地图库的兼容性。
  3. 客户端处理:

    • 加载 OSM 瓦片:

      • 在使用客户端库(如 Leaflet、OpenLayers)加载 OSM 瓦片时,通常 不需要 设置 tms: true
      • 这是因为 OSM 瓦片的 Y 轴方向与 XYZ 方案一致,设置 tms: true 会导致 Y 轴翻转,瓦片无法正确显示。
    • 注意事项:

      • 如果错误地将 tms 设为 true,客户端会以 TMS 方式请求瓦片,导致请求的 Y 值与服务器实际的瓦片不匹配。
  4. 坐标转换:

    • 从 TMS 到 XYZ 的转换:

      • 如果您有 TMS 瓦片,需要在 XYZ 方案的客户端中加载,可以进行 Y 值的转换:
        y_xyz = (2^z - 1) - y_tms
        
        其中:
        • y_tms:TMS 方案的 Y 值。
        • y_xyz:XYZ 方案对应的 Y 值。
        • z:缩放等级。
    • 反之亦然:

      • 如果需要在 TMS 方案的客户端中加载 OSM 的 XYZ 瓦片,也需要进行类似的转换。
  5. 为什么 OSM 选择 XYZ 方案:

    • 兼容性:

      • XYZ 已成为事实上的行业标准,主流的地图服务和客户端库都默认支持 XYZ 方案。
      • 采用 XYZ 方案,OSM 的瓦片服务可以被更广泛的应用和开发者使用。
    • 易于使用:

      • XYZ 方案的 URL 结构简单直观,符合大多数开发者的习惯。
  6. 如何在 TMS 客户端中使用 OSM 瓦片:

    • 方法一:坐标转换

      • 在客户端加载瓦片时,手动对 Y 值进行转换,以匹配 OSM 瓦片的索引。
      • 在一些客户端库中,可以自定义瓦片加载函数,进行 Y 值的调整。
    • 方法二:使用代理服务

      • 搭建一个代理服务器,在请求瓦片时自动进行 Y 值的转换,将 TMS 请求转换为 XYZ 请求。
    • 方法三:重新生成瓦片

      • 使用工具从 OSM 数据生成符合 TMS 规范的瓦片,但这通常需要较大的存储和计算资源,不太实际。

总结:

  • OSM 地图主要采用 XYZ 瓦片方案,而非 TMS 瓦片规范。
  • 如果需要在 TMS 方案的客户端中使用 OSM 瓦片,需要进行 Y 值的坐标转换。
  • 在使用常见地图开发库(如 Leaflet、OpenLayers)加载 OSM 瓦片时,不要启用 TMS 模式(即确保 tms: false)。

建议:

  • 确认瓦片方案:在开发和使用地图服务时,首先确认瓦片服务采用的瓦片方案(XYZ 或 TMS),以便正确配置客户端。
  • 注意参数配置:在使用地图库加载瓦片时,注意 tms 参数的设置,避免因设置错误导致地图无法正确显示。
  • 坐标转换工具:如果需要在不同瓦片方案之间进行转换,可以编写或使用现有的工具函数,对瓦片的 X、Y、Z 值进行转换。

希望以上解答能帮助您更好地理解 OSM 地图瓦片方案以及如何在不同场景中正确使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容