瓦片原理

瓦片原理

1.瓦片

经过Web墨卡托投影后,地图就变为平面的一张地图。考虑到有时候我们需要看宏观的地图信息(如世界地图里每个国家的国界),有时候又要看很微观的地图信息(如导航时道路的路况信息)。为此,我们对这张地图进行等级切分。在最高级(zoom=0),需要的信息最少,只需保留最重要的宏观信息,因此用一张256×256像素的图片表示即可;在下一级(zoom=1),信息量变多,用一张512×512像素的图片表示;以此类推,级别越低的像素越高,下一级的像素是当前级的4倍。这样从最高层级往下到最低层级就形成了一个金字塔坐标体系。

对每张图片,我们将其切分为256×256的图片,称为瓦片(Tile)。这样,在最高级(zoom=0)时,只有一个瓦片;在下一级(zoom=1)时有4个瓦片;在下一级(zoom=2)时有16个瓦片,以此类推。

上述过程可以用下图进行总结:

clipboard.png

推动滚轮,修改比例尺,可以将地图放大缩小。因为电脑屏幕大小是一定的,所以比例尺越大,显示的地理范围就越小,而地图内容就越详细,比例尺越小,显示的地理范围就越大,而地图内容就越概要。

img

瓦片地图就像金字塔一样,每层由一个个小方块平铺而成,以一个小方块为例,当地图被放大的时候,这个小方块所占的实际地理空间被分成2×2的4个小方块,新生成的小方块像素宽度和长度跟原来的小方块一样,原来一个小方块的内容由4个小方块来展示,展示空间大了,就变得详实了,但是电脑屏幕是一定的,之前加载多少小方块,现在还加载多少。

img

2.瓦片编号

瓦片生成后,就是一堆图片。怎么对这堆图片进行编号,是目前主流互联网地图商分歧最大的地方。总结起来分为四个流派:

  • 谷歌XYZ:Z表示缩放层级,Z=zoom;XY的原点在左上角,X从左向右,Y从上向下。
  • TMS:开源产品的标准,Z的定义与谷歌相同;XY的原点在左下角,X从左向右,Y从下向上。
  • QuadTree:微软Bing地图使用的编码规范,Z的定义与谷歌相同,同一层级的瓦片不用XY两个维度表示,而只用一个整数表示,该整数服从四叉树编码规则
  • 百度XYZ:Z从1开始,在最高级就把地图分为四块瓦片;XY的原点在经度为0纬度位0的位置,X从左向右,Y从下向上。

下图显示了前三个流派在zoom=1层级上的瓦片编号结果:

clipboard.png

3.参考

WebGIS 瓦片地图引擎实现之——地图瓦片加载计算原理介绍

瓦片地图原理

webGIS开发背景知识索引--瓦片原理与数据规范等

openlayers调用瓦片地图分析

OpenLayers:加载GeoServer发布的WMTS、TMS服务

WebGIS瓦片基础原理

矢量瓦片切割工具

1.POSTGIS 可以动态生成矢量瓦片,geosever 也可以发布矢量瓦片服务。具体参考GeoServer官方教程:矢量切片

2.静态生成工具 tippecanoe

参考

矢量瓦片切片工具 tippecanoe 介绍,大数据可视化必备

使用Tippecanoe工具处理大数据量的矢量数据切片

非常好用的开源矢量地图切片工具

栅格瓦片切割工具

1.基于GDAL的Python脚本gdal2tile.py(开源)

具体参考https://www.cnblogs.com/Joetao/articles/17090007.html

2.MapTiler

GDAL写的一个商业软件,收费.把 GDAL2Tiles 工具做了个图形化界面,使用更方便。暂时只支持栅格图片,如TIFF/GeoTIFF, MrSID, ECW, JPEG2000, JPEG, PNG等。但是支持在Google Maps, Openlayers等上使用。同时切出来的Tile存储方式兼容TMS,不过这个由于TMS存在变数与异议,不能算作优点

利用MapTiler工具进行地图瓦片切图,适合用于在h5中显示手绘地图场景

3.GlobalMapper、

4.ArcGIS

5.GeoServer

posted @ 2023-02-09 17:22  焦涛  阅读(610)  评论(0)    收藏  举报