Tippecanoe实践

工作 · 2023-12-14

参数解释

在处理大量地理信息数据时,特别是在小比例尺/低缩放级别下,将所有特征都包含在地图瓦片中可能会导致图层过于密集且难以解决。因此,Tippecanoe提供了一种“点降低”机制,使得在低缩放级别下进行点特征的抽稀。

-r--drop-rate
此参数代表在基础缩放级别(base zoom level)以下的缩放级别中,每个瓦片中减少点特征的比例(默认为 2.5)。例如,如果设置为 -r 3,Tippecanoe将在每个更低的缩放级别上尝试删除瓦片中 3/4 的点。如果使用 -rg,Tippecanoe将自动估计一个较好的抽稀比例,使得每个最稠密的瓦片中包含不超过 50,000个特征。

-B--base-zoom
这个参数设定基础缩放级别,即此级别及以上的级别中全部点被包含在瓦片中。如果使用 -Bg,Tippecanoe将自动估计一个较好的基础缩放级别,使得每个最稠密的瓦片中包含不超过 50,000个特征。

-al--drop-lines
使线特征也适用点降低的规则。

-ap--drop-polygons
使多边形特征也适用点降低的规则。

-K--cluster-distance
对于距离在指定大小范围内的点,进行聚合处理,形成一个新的点来代替原有的点集合。这个范围的单位是瓦片中的像素数(最大值为瓦片的像素数,例如 256)。这个参数的设定取决于标记的大小,对于常用的标记尺寸一般取值约为 10

示例

下面例举一种可能的参数设置以创建这样的城市人口地图。

假设我们的地理信息数据文件为 cities.geojson

我们可以利用-z 参数来设定最大缩放级别为 14, 这意味着用户可以一直放大到这个级别以看到所有的城市特征。

我们可以利用 -B 参数来设定基础缩放级别为10, 这意味着在缩放级别10及以上会显示所有城市。在低于这个级别的缩放级别,会根据 -r 参数设定的抽稀比例进行抽稀。

我们可以利用 -r 参数来设定在基础缩放级别以下每个瓦片中减少点特征的比例为2.5。值越低,越多的点会被保留。

提供的-g--gamma参数,可以用于控制密集点的降级(drop)。这个参数的默认值为0,表示没有效果。如果你的数据中含有大量的密集点(即,点的距离不超过一个像素),你可以通过增加gamma的值来降低这些密集点。例如,-g 2可以将距离小于一个像素的点的数量降低到其原来的平方根。

然而,在实际使用中,可能难以确定一个适当的gamma值。因此,Tippecanoe提供了参数-aG--increase-gamma-as-needed 来自动调整gamma的值。如果一个瓦片的大小超过了500K,Tippecanoe就会尝试通过增加gamma的值来减小瓦片的大小。此参数可能对于处理特征非常密集的地图数据特别有用。

然而,应该注意,-aG--increase-gamma-as-needed的使用可能会对地图的视觉效果产生影响,因为它会减少瓦片中的特征数,因此,在使用这些参数时要小心。

最后,我们可以利用 -o 参数来指定输出的文件名。

整个命令如下:

tippecanoe -z 14 -B 10 -r 2.5 -g 2 -aG -o cities.mbtiles cities.geojson

这个命令会把 cities.geojson 转化为 cities.mbtiles,并根据缩放级别动态显示特征。在全球视图(缩放级别 0 或 1)会自动抽稀,只保留部分重要城市,而当你放大地图,更多的城市会逐渐显示出来。-g 2表示初始的gamma值为2,-aG表示会在必要时增加gamma值以减小瓦片的大小。这样会有效减小输出的瓦片大小,但可能会对地图的视觉效果产生影响,因为特征的数量被减少了。

Theme Jasmine by Kent Liao