2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > mapbox的矢量切片工具:tippecanoe

mapbox的矢量切片工具:tippecanoe

时间:2021-11-01 00:32:07

相关推荐

mapbox的矢量切片工具:tippecanoe

矢量切片工具:tippecanoe

Tippecanoe 用于将 GeoJSON, Geobuf, 或者 CSV 格式的矢量要素转换为矢量瓦片。

目的

Tippecanoe 的目的是将数据制作为比例独立的视图,以使在任何缩放级别下,你都可以看到数据的密度和细节,而不是将数据简化或聚合。

如果你提供的是 OpenStreetMap 所有的数据,在小比例尺下,你应该看到类似于All Streets的地图,而不是州际道路地图。

如果你提供的是洛杉矶的所有详细的建筑数据,并且将地图缩放到小比例尺下,绝大部分的单体建筑将不再可辨,但是你应该可以看到每个街区的范围和变化。

如果你提供的是一年内 twitter 推文的定位数据集,你应该可以发现所有兴趣点之间的关联和热门的旅游路线。

安装

OSX 操作系统使用 Homebrew 安装:

$ brew install tippecanoe

Ubuntu 系统最简单的方式是从源码中构建:

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

如果编译中出现问题,可能是你的C++编译器需要升级,或者缺少必要的依赖包,详细请查看文档。

使用

$ tippecanoe -o file.mbtiles [options] [file.json file.json.gz file.geobuf ...]

如果没有指定文件,会从默认路径读取 GeoJSON 文件;如果指定了多个文件,每一个文件将会被当做一个图层。

GeoJSON 要素不一定非得包含在 FeatureCollection 中。你可以将多个 GeoJSON 要素或者文件合并。

Try this first

如果你不确定使用什么选项,请尝试一下命令:

$ tippecanoe -o out.mbtiles -zg --drop-densest-as-needed in.geojson

使用-zg选项,Tippecanoe 将自动选择一个可以反映原始数据精度的最大级别(如果结果没有达到你想要的效果,你也可以使用-z选项手动设置最大级别)。

如果生产出的切片太大,可以使用--drop-densest-as-needed选项,来让Tippecanoe自动删除各个级别下最不可见的要素。(如果它删除了太多的要素,你可以使用-x选项来删除不必要的属性字段)

选项

tippecanoe 切片有很多选项,但是大部分情况下你并不想要使用它们,除了使用-o output.mbtiles

来定义输出瓦片文件名,或者再加上-f选项来强制删除同名文件。

如果你不确定需要切片的最大级别,-zg选项可以根据源数据自动计算出一个最大级别。

通常,在最大切片级别以下的级别,tippecanoe 会舍弃部分点要素,以防止瓦片过大。如果你的数据集本来就不大,你想要保留所有要素,可以使用-r1选项。如果你确实是想要简化数据,但是又不想简化得过于稀疏,可以使用-B选项设置一个小于最大级别的数值。

通过以上设置,如果你的切片仍然很大,你可以使用--drop-densest-as-needed选项来进一步简化要素。

如果你的要素包含很多属性,你可以使用-y选项来选择只保留你给定的字段。

如果你的GeoJSON 文件是格式化后的,使用-p可以加快文件读取。

输出选项

-o file.mbtiles--output=file.mbtiles:指定输出文件名-e directory--output-to-directory=directory:指定输出文件路径-f--force:若存在同名文件则删除-F--allow-existing

瓦片集属性选项

-n name--name=name: 给瓦片集设置一个易读的名字-A text--attribution=text: 瓦片集-N description--description=description: 瓦片集描述

输入文件和图层名

name.jsonname.geojson:读取 GeoJSON 文件

name.json.gzname.geojson.gz:读取 GeoJSON 压缩文件

name.geobuf:读取 Geobuf 文件

name.csv:读取 CSV 文件

-l name--layer=name: 使用自定义图层名,而不是默认的输入文件名作为图层名,如果有多个输入文件,将合并为一个图层,除非使用-L选项来分别指定图层名。

-L name:file.json--named-layer=name:file.json:定义每个文件的对应的图层名

-L{layer-json}

--named-layer={layer-json}

: 通过 json 对象定义图层。示例:

tippecanoe -z5 -o world.mbtiles -L'{"file":"ne_10m_admin_0_countries.json", "layer":"countries", "description":"Natural Earth countries"}'

坐标系

-s projection--projection=projection: 给定输入文件的坐标系统。当前支持的坐标系有EPSG:4326(WGS84,默认值)、EPSG:3857(Web Mercator)。请尽量使用 WGS84 坐标系统的数据集。

切片级别

-z zoom--maximum-zoom=zoom:切片的最大级别(默认为14)-zg--maximum-zoom=g: 根据数据的密集程度自动计算一个最大级别-Z zoom--minimum-zoom=zoom: 切片的最小级别(默认0)-ae--extend-zooms-if-still-dropping: 如果在大级别下瓦片仍然很大,它将自动增加最大级别,以使最大级别下没有要素被删除-R zoom/x/y--one-tile=zoom/x/y:

如果你知道你想要的切片的数据精度,那么你就可以根据以下表格来设置切片级别:

属性筛选

-x name--exclude=name: 指定切片中应剔除的字段。-y name--include=name: 指定切片中应包含的字段。

Cookbook

线要素(全球铁路),在所有级别可见

curl -L -O /http///download/10m/cultural/ne_10m_railroads.zipunzip ne_10m_railroads.zipogr2ogr -f GeoJSON ne_10m_railroads.geojson ne_10m_railroads.shptippecanoe -zg -o ne_10m_railroads.mbtiles --drop-densest-as-needed --extend-zooms-if-still-dropping ne_10m_railroads.geojson

-zg: 自动选择最大级别;--drop-densest-as-needed: 如果在小级别下瓦片太大,该选项将自动简化要素;--extend-zooms-if-still-dropping: 如果在大级别下瓦片仍然很大,它将自动增加最大级别,以使最大级别下没有要素被删除;

不连续的面要素(美国罗德岛),在所有级别可见

curl -L -O https://usbuildingdata.blob./usbuildings-v1-1/RhodeIsland.zipunzip RhodeIsland.ziptippecanoe -zg -o RhodeIsland.mbtiles --drop-densest-as-needed --extend-zooms-if-still-dropping RhodeIsland.geojson

-zg: 自动选择最大级别;--drop-densest-as-needed: 如果在小级别下瓦片太大,该选项将自动简化要素;--extend-zooms-if-still-dropping: 如果在大级别下瓦片仍然很大,它将自动增加最大级别,以使最大级别下没有要素被删除;

连续的面要素(行政区划),在所有级别可见

curl -L -O /http///download/10m/cultural/ne_10m_admin_1_states_provinces.zipunzip -o ne_10m_admin_1_states_provinces.zipogr2ogr -f GeoJSON ne_10m_admin_1_states_provinces.geojson ne_10m_admin_1_states_provinces.shptippecanoe -zg -o ne_10m_admin_1_states_provinces.mbtiles --coalesce-densest-as-needed --extend-zooms-if-still-dropping ne_10m_admin_1_states_provinces.geojson

-zg: 自动选择最大级别;--extend-zooms-if-still-dropping: 如果在大级别下瓦片仍然很大,它将自动增加最大级别,以使最大级别下没有要素被删除;--coalesce-densest-as-needed: 如果瓦片在低级别或中等级别下比较大,该选项将合并要素;

海量点数据(公交车GPS轨迹数据),可视化,在所有级别可见

curl -L -O ftp://avl-/avl_data/avl_raw/sfmtaAVLRawData0101.csvsed 's/PREDICTABLE.*/PREDICTABLE/' sfmtaAVLRawData0101.csv > sfmta.csvtippecanoe -zg -o sfmta.mbtiles --drop-densest-as-needed --extend-zooms-if-still-dropping sfmta.csv

(sed命令用于清除不必要的字段)

-zg: 自动选择最大级别;--drop-densest-as-needed: 如果在小级别下瓦片太大,该选项将自动简化要素;--extend-zooms-if-still-dropping: 如果在大级别下瓦片仍然很大,它将自动增加最大级别,以使最大级别下没有要素被删除;

低级别显示国家边界,高级别显示州边界

curl -L -O /http///download/10m/cultural/ne_10m_admin_0_countries.zipunzip ne_10m_admin_0_countries.zipogr2ogr -f GeoJSON ne_10m_admin_0_countries.geojson ne_10m_admin_0_countries.shpcurl -L -O /http///download/10m/cultural/ne_10m_admin_1_states_provinces.zipunzip -o ne_10m_admin_1_states_provinces.zipogr2ogr -f GeoJSON ne_10m_admin_1_states_provinces.geojson ne_10m_admin_1_states_provinces.shptippecanoe -z3 -o countries-z3.mbtiles --coalesce-densest-as-needed ne_10m_admin_0_countries.geojsontippecanoe -zg -Z4 -o states-Z4.mbtiles --coalesce-densest-as-needed --extend-zooms-if-still-dropping ne_10m_admin_1_states_provinces.geojsontile-join -o states-countries.mbtiles countries-z3.mbtiles states-Z4.mbtiles

Countries:-z3: 最大切片级别为3,即只切 0 - 3 级别的瓦片;--coalesce-densest-as-needed: 如果瓦片在低级别或中等级别下比较大,该选项将合并要素; States and Provinces:-Z4: 最小切片级别为4;-zg: 自动选择最大级别;--coalesce-densest-as-needed: 如果瓦片在低级别或中等级别下比较大,该选项将合并要素;--extend-zooms-if-still-dropping: 如果在大级别下瓦片仍然很大,它将自动增加最大级别,以使最大级别下没有要素被删除;

多个数据源切片为独立的图层

curl -L -O https://www2.census.gov/geo/tiger/TIGER/COUNTY//tl__17_county10.zipunzip tl__17_county10.zipogr2ogr -f GeoJSON tl__17_county10.geojson tl__17_county10.shpcurl -L -O https://www2.census.gov/geo/tiger/TIGER/COUNTY//tl__18_county10.zipunzip tl__18_county10.zipogr2ogr -f GeoJSON tl__18_county10.geojson tl__18_county10.shptippecanoe -zg -o counties-separate.mbtiles --coalesce-densest-as-needed --extend-zooms-if-still-dropping tl__17_county10.geojson tl__18_county10.geojson

-zg: 自动选择最大级别;--coalesce-densest-as-needed: 如果瓦片在低级别或中等级别下比较大,该选项将合并要素;--extend-zooms-if-still-dropping: 如果在大级别下瓦片仍然很大,它将自动增加最大级别,以使最大级别下没有要素被删除;

多个数据源切片并合并为一个图层

curl -L -O https://www2.census.gov/geo/tiger/TIGER/COUNTY//tl__17_county10.zipunzip tl__17_county10.zipogr2ogr -f GeoJSON tl__17_county10.geojson tl__17_county10.shpcurl -L -O https://www2.census.gov/geo/tiger/TIGER/COUNTY//tl__18_county10.zipunzip tl__18_county10.zipogr2ogr -f GeoJSON tl__18_county10.geojson tl__18_county10.shptippecanoe -zg -o counties-merged.mbtiles -l counties --coalesce-densest-as-needed --extend-zooms-if-still-dropping tl__17_county10.geojson tl__18_county10.geojson

-l counties: 图层名默认为文件名,也可以使用该选项自定义;

tile-join

用于合并或复制矢量瓦片。

tippecanoe-decode

用于将矢量瓦片逆向转换为 GeoJSON。

tippecanoe-enumerate

用于列举mbtiles中的矢量瓦片。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。