「GIS笔记」Mapshaper文件导出命令-o(output)
文件输出(Output)是mapshaper另外一个最基本的命令,所有的数据操作均需要使用该命令。同样的,mapshaper对文件输出做了不少工作,针对不同的文件格式,会分别有不同的文件设置参数。本文做一个整理,版本基于0.6.x
,后续如果有更新,大家可以留言哈。
-o(output)命令
将编辑的内容保存到一个或多个文件中。默认情况下,如果 Mapshaper 检测到命名冲突,它会在输出文件后自动附加一个后缀,以避免覆盖现有文件。
选项参数
默认 -o
后面接文件名或者目录,用于表示输出文件或目录的名称。
format=shapefile|geojson|topojson|json|dbf|csv|tsv|svg
,使用format
指定输出格式。如果format=
选项没有设置,Mapshaper 会尝试从输出文件名推断格式。如果没有给出文件名,Mapshaper 使用输入(-i)的文件名。在导出json
格式的时候,导出的是一个对象数组,其中包含每个特征的数据属性。
target=
指定要导出的层(逗号分隔)。默认目标是上一个命令的输出层,使用target=*
来指定所有图层。
force
输出文件覆盖输入文件(如果未设置这个选项,默认不覆盖输入文件)。
cut-table
从数据中分离属性数据并保存为 JSON 文件。
drop-table
输出的时候删除属性数据。
precision=
将所有坐标四舍五入到指定的精度,例如precision=0.001. 用于减小 GeoJSON 文件的大小。
bbox-index
导出一个 JSON 文件,其中包含每个输出层的边界框。
encoding=
(Shapefile/CSV) 设置编码(默认情况下,Shapefile 编码自动检测, CSV 文件默认 UTF-8 编码)。
field-order=
(Shapefile/CSV)字段排序,如field-order=ascending
,将按字段名称的字母顺序(A-Z)对数据字段进行排序。
id-field=
(Topo/GeoJSON/SVG) 指定 GeoJSON、TopoJSON 或 SVG 功能的“id”字段(可以是多个,用逗号分隔)。在导出多个图层时,可以传字段名称列表。图层属性表中出现的第一个列出的名称将用作该图层的 id 字段。
bbox
(Topo/GeoJSON) 将 bbox 属性添加到对象顶层。
extension=
(Topo/GeoJSON) 设置JSON文件扩展名(默认为“.json”)。
prettify
(Topo/GeoJSON) 格式化输出,提高可读性。
singles
(TopoJSON) 将每个图层保存为单独的文件。每个输出文件及其包含的 TopoJSON 对象都以相应的图层命名。
quantization=
(TopoJSON) 拓扑量化,指定最大拓扑量化值。等效于TopoJSON的topoquantize
命令使用的量化参数。默认情况下,mapshaper 取平均分段长度 * 0.02。
no-quantization
(TopoJSON) 弧坐标以全精度编码,没有增量编码。
presimplify
(TopoJSON)在z位置(即[x, y, z])为每个弧段顶点添加一个阈值,用于顶点过滤动态简化路径。假设 W 为地图可视的宽度(以像素为单位),S 为内容宽度与地图可视宽度的比,pz 为点的预简化值,使用以下表达式来确定是不是应该将该点从输出路径中排除pz > 0 && pz < 10000 / (W * S)
topojson-precision=
(TopoJSON) 将拓扑量化的值设置为 1 / 平均长度
。
ndjson
(GeoJSON/JSON) 输出Newline-delimited的记录。
gj2008
(GeoJSON) 生成与 pre-RFC 7946 GeoJSON 规范(可追溯到 2008 年)一致的输出。多边形环是 CW,孔是 CCW,这与默认的 RFC 7946 兼容输出相反。Mapshaper 的默认 GeoJSON 输出现在与当前规范 (RFC 7946) 兼容。
combine-layers
(GeoJSON) 将多个输出层合并到一个 GeoJSON 文件中。
geojson-type=
(GeoJSON) 覆盖默认输出类型。可能的值:“FeatureCollection”、“GeometryCollection”、“Feature”(对于单个特征)。
width=
(SVG/TopoJSON) 以像素为单位设置输出数据集的宽度。当与 TopoJSON 输出一起使用时,此选项将输出坐标从地理单位切换为像素并翻转 Y 轴。SVG 输出始终以像素为单位(默认 SVG 宽度为 800)。
height=
(SVG/TopoJSON) 类似于width选项。如果同时设置height和width,则内容在[0, 0, width, height]边界框内居中。
max-height=
(SVG/TopoJSON) 限制输出最大高度(单位:像素)。
margin=
(SVG/TopoJSON) 设置坐标数据和视口边缘之间的边距(默认为 1)。要为每一侧分配不同的边距,请按顺序传递一个值列表<left,bottom,right,top>(类似于bbox=其他命令中的选项)。
pixels=
(SVG/TopoJSON) 以像素为单位的输出区域(效果width=
一样)。
id-prefix=
为命名空间层和特征 ID 添加前缀。
svg-data=
(SVG) 将数据字段列表导出为 SVG data-* 属性。属性名称应与以下正则表达式模式匹配:/^[a-z_][a-z0-9_-]*$/. 不合格的字段被跳过。
svg-scale=
(SVG) 使用每个像素的地理单位缩放 SVG 输出(SVG的width=
选项可用这个选项替换)。
point-symbol=square
(SVG) 使用正方形来符号化点数据(默认圆形)。
delimiter=
(CSV) 设置 CSV/分隔文本输出的字段分隔符;例如delimiter=|
。
decimal-comma
(CSV) 使用逗号来标记数字分位。
示例
# 把data目录下的所有shp文件转换为geojson文件
mapshaper data/*.shp -o geojson/ format=geojson
所有文章
点击查看系列全部文章--> 「更新中」Mapshaper入门学习笔记
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。