Tippecanoe生成适量切片方法

使用Tippecanoe工具进行矢量地图切片,用GeoJSON文件构建矢量切片集

GIS Tippecanoe 矢量切片
发布于 2018-10-13 阅读 1.2k

GIT源码地址:https://github.com/mapbox/tippecanoe

安装

使用Homebrew安装:

$ brew install tippecanoe

使用源码安装:

$ git clone git@github.com:mapbox/tippecanoe.git
$ cd tippecanoe
$ make -j
$ make install

参数说明

$ tippecanoe -o [输出文件] [选项] [输入文件]

输入文件

如果没有指定GeoJSON文件,它将会从标准输入读取。 如果指定了多个文件,每个文件都会创建一个对应的图层。

  • name.json or name.geojson: 读取指定的文件到一个名为name的图层
  • -l name or --layer=name:使用指定的图层名,如果输入的有多个文件,则这些文件将会被合并到一个图层
  • -L name:file.json or --named-layer=name:file.json: 为每一个单独的文件指定一个图层名

输出文件

只需要通过 -o output.mbtiles 指定输出文件名,或者 -f 来删除已经存在的文件。

  • -o file.mbtiles or --output=file.mbtiles: 指定输出文件名称
  • -e directory or --output-to-directory=directory: 将瓦片文件输出到指定的directory 文件夹,而不是mbtiles
  • -f or --force: 如果指定的mbtiles已存在,则删除,否则抛出错误
  • -F or --allow-existing: 忽略元数据或瓦片已存在的情况,一般不推荐使用

选项

tippecanoe提供了众多选项,大多数时候不需要指定额外的选项参数。

切片描述与水印

  • -n name or --name=name: (默认)生成XXX.json作为可读的切片描述
  • -A text or --attribution=text: 切片水印
  • -N description or --description=description: 生成XXX.mbtiles作为切片描述

线、面简化

  • -S scale or --simplification=scale: 容差
  • -ps or --no-line-simplification: 无线简化
  • -pS or --simplify-only-low-zooms: 在高缩放等级时不简化
  • -pt or --no-tiny-polygon-reduction: 不合并面

瓦片描述和权属信息

  • -n name or --name=name:瓦片集的名称
  • -A text or --attribution=text:使用瓦片数据时,显示在地图上的权属信息 (HTML格式)
  • -N description or --description=description: 瓦片集的描述信息 (默认 file.mbtiles)

输入文件的并行处理

  • -P or --read-parallel: 使用多线程读取一个文件的不同部分 该选项只对新行分隔(每个要素为一行)的json文件有效。否则将会返回一个“EOF”错误

输入文件的投影

  • -s projection or --projection=projection:为输入的数据指定一个投影。目前仅支持 EPSG:4326 (WGS84, 默认) 和 EPSG:3857 (Web墨卡托)。

缩放级别

如果你不确定所使用数据的最大级别,可以使用 -zg 来根据数据密度自动估算一个级别。

  • -z zoom or --maximum-zoom=zoom:切片的最大级别(默认14)
  • -zg or --maximum-zoom=g: 根据要素分布自动估算最大级别
  • -Z zoom or --minimum-zoom=zoom:切片的最小级别(默认0)

切片分辨率

  • -d detail or --full-detail=detail: 最大缩放等级的分辨率(默认 12级, 切片分比率 2^12=4096)
  • -D detail or --low-detail=detail: 较低等级的分辨率(默认 12级, 切片分比率 2^12=4096)
  • -m detail or --minimum-detail=detail: 最小的分辨率(默认7级)

属性表过滤器

  • -x name or --exclude=name: 移除所有要素对应的指定字段
  • -y name or --include=name: 移除所有空字段要素
  • -X or --exclude-all: 移除所有属性字段,只保留几何字段
  • -Tattribute:type or --attribute-type=attribute:type: 改变指定字段的类别:string, float, int, bool.
  • -j filter or --feature-filter=filter: 字段过滤,"*"表示使用所有图层,使用mapbox过滤函数
  • -J filter-file or --feature-filter-file=filter-file: 和"-j"一样,只不过从文件中过滤

公共面边界优化

  • -ab or --detect-shared-borders: 检测公共边界并简化
  • -aL or --grid-low-zooms: 线、面吸附

裁剪切片边界

  • -b pixels or --buffer=pixels: 缓冲区(默认5,2^5=32)
  • -pc or --no-clipping: 不裁剪
  • -pD or --no-duplication: 无重复

切片要素重排

  • -pi or --preserve-input-order: 以输入顺序作为绘制顺序
  • -ao or --reorder: 所有同属性要素按顺序重排
  • -ac or --coalesce: 合并具有相同属性的相邻线、面
  • -ar or --reverse: 合并相邻但反向的线段

增加计算的额外字段

  • -ag or --calculate-feature-density: 增加字段tippecanoe_feature_density, 用于描述切片中的要素密度

修复破损几何

  • -aw or --detect-longitude-wraparound: 检测相邻点,并修复几何

切片大小设

  • -M bytes or --maximum-tile-bytes=bytes: 切片大小指定(默认500k)
  • -pf or --no-feature-limit: 切片要素数量限制(默认20W)
  • -pk or --no-tile-size-limit: 不使用切片大小限制
  • -pC or --no-tile-compression: 不使用PBF压缩(此处必须选择,否则mapbox无法使用)
  • -pg or --no-tile-stats: 不生成切片信息

临时储存

  • -t directory or --temporary-directory=directory: 临时目录,如果未指定,使用/tmp.

结果指示器

  • -q or --quiet: 静默模式
  • -v or --version: 返回Tippecanoe版本号

如果你的数据包含点状要素,通常需要使用-Bg来自动计算一个基准级别做数据抽稀。如果这种方式对你无效,可以尝试使用-r1 --drop-fraction-as-needed 关闭传统的抽稀方法,而仅仅在瓦片太大时才做抽稀; 如果你的数据包含点状要素或面状要素,你可能需要使用--drop-densest-as-needed 来舍弃一些要素,让其可以在低级别显示。

使用方法

生成mbtiles文件

tippecanoe -o [输出文件路径.mbtiles]  [输入文件路径.json/.geojson] -z [切片最小层级] -Z [切片最大层级] -P -f -ps -Bg

生成pbf文件

tippecanoe -e [输出文件路径.pbf] [输入文件路径.json/.geojson] -z [切片最小层级] -Z [切片最大层级] -f -ps 
  • 本文类型: 原创
  • 本文出处:
  • 版权说明: 本站内容均采用©BY-NC-SA许可协议,版权归作者和本站所有!欢迎转载,但未经作者同意必须在文章页面注明原文出处,否则保留追究法律责任的权利。

坤尘记

I AM KUNCHEN!思绪如风,总会在某处停留;用轻灵的文字书写关于技术生活的奇思妙想。

浙ICP备2020045526号