侧边栏壁纸
博主头像
YouGIS博文 - YouGIS顽石工坊 博主等级

行动起来,活在当下

  • 累计撰写 24 篇文章
  • 累计创建 8 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Mapshaper使用说明完整版:轻量级GIS数据处理工具全解析

Administrator
2026-03-01 / 0 评论 / 0 点赞 / 117 阅读 / 0 字

主页:yougis.com.cn
博文:
blog.yougis.com.cn
工具:
yougis.com.cn/tool/home

qr-wechat.jpg

扫码获取更多精彩内容

摘要

Mapshaper是一款基于JavaScript开发的轻量级GIS数据处理工具,专门用于编辑和处理Shapefile、GeoJSON、TopoJSON等格式的空间数据。本文将全面介绍Mapshaper的功能特点、支持的命令和数据格式,并分章节详细介绍Mapshaper的安装、命令分类、Input与Output命令、编辑命令和信息类命令的使用方法。通过本文的学习,读者将能够掌握Mapshaper的核心功能,轻松应对各种GIS数据处理任务。

🎉 立即体验Mapshaper汉化版:无需安装,打开浏览器即可使用!支持中文界面,操作更便捷
试用地址https://yougis.com.cn/mapshaper

关键词

Mapshaper、GIS数据处理、Shapefile、GeoJSON、TopoJSON、数据简化、空间裁剪、命令行工具

一、Mapshaper简介

1.1 什么是Mapshaper?

Mapshaper是一款用JavaScript开发的软件,专门用于编辑和处理Shapefile、GeoJSON、TopoJSON等格式的空间数据。它提供了强大的命令行工具,支持地图制作所需的各种任务,包括数据简化、属性编辑、空间裁剪、要素擦除、图层合并、数据过滤等操作。

作为一款轻量级的GIS数据处理工具,Mapshaper具有以下特点:

  • 轻量高效:基于Node.js运行,无需安装庞大的GIS软件

  • 功能全面:覆盖GIS数据处理的核心需求

  • 跨平台:支持Windows、Mac、Linux等操作系统

  • 开源免费:完全开源,可自由使用和修改

1.2 Mapshaper的作用

Mapshaper的主要作用是作为可视化的GIS数据处理工具,帮助用户快速完成各种空间数据处理任务。具体包括:

  1. 数据格式转换:支持多种格式之间的相互转换,如Shapefile转GeoJSON、GeoJSON转TopoJSON等

  2. 数据简化:使用Douglas-Peucker或Visvalingam方法简化数据,减少数据量

  3. 空间处理:支持裁剪、擦除、合并等空间操作

  4. 属性处理:支持属性连接、过滤、计算等操作

  5. 数据质量检查:支持数据信息查看、统计分析等功能

1.3 支持的处理操作

Mapshaper支持丰富的GIS数据处理操作,主要包括:

空间处理操作

  • 裁剪(clip):移除裁剪范围外的要素或部分要素

  • 擦除(erase):移除落在多边形范围内的要素或部分要素

  • 合并(dissolve):合并多边形或点要素,删除公共边界

  • 融合(merge):将多个图层的要素融合到一个图层中

几何处理操作

  • 简化(simplify):减少数据节点数量

  • 打散(explode):将多部件要素拆分成独立要素

  • 边界提取(lines):提取多边形的边界

  • 点要素创建(points):从多边形或属性表创建点要素

属性处理操作

  • 连接(join):连接属性数据

  • 过滤(filter):通过条件过滤要素

  • 字段管理:重命名字段、删除字段、创建新字段

  • 数据计算:使用JavaScript表达式进行复杂计算

1.4 支持的数据格式

Mapshaper支持多种主流的空间数据格式,具体包括:

矢量数据格式

  • Shapefile:最常用的矢量数据格式,支持.shp、.shx、.dbf等文件

  • GeoJSON:基于JSON的地理数据格式,广泛用于Web GIS

  • TopoJSON:GeoJSON的扩展格式,支持拓扑关系,数据量更小

  • JSON:通用的JSON数据格式

表格数据格式

  • DBF:Shapefile的属性表格式

  • CSV:逗号分隔的文本文件

  • TSV:制表符分隔的文本文件

其他格式

  • SVG:可缩放矢量图形格式,适合Web展示

  • 限定文本格式:支持自定义分隔符的文本文件

1.5 Mapshaper的使用方式

Mapshaper提供了两种使用方式,用户可以根据自己的需求选择合适的方式:

方式一:在线方式
用户可以直接访问Mapshaper官网(http://www.mapshaper.org/),在Web界面中进行数据简化、格式转换等操作。

  • 适用场景:快速处理少量数据,无需安装软件

  • 优点:无需安装,打开浏览器即可使用

  • 缺点:不适合处理大量数据或批量操作

方式二:命令行方式
在本机安装Mapshaper后,可以通过命令行调用各种命令进行批量处理。这种方式适合处理大量数据或需要自动化处理的场景。

  • 适用场景:批量处理数据、自动化工作流

  • 优点:支持批处理,效率高

  • 缺点:需要安装软件,需要学习命令

1.6 Mapshaper的安装

Mapshaper的安装以Node.js为前提。在安装Mapshaper之前,需要先安装Node.js。Node.js安装完成后,即可使用npm(Node Package Manager)安装最新版本的Mapshaper。

在命令行中执行以下安装命令:

npm install -g mapshaper

安装过程如下所示:

install.png

安装过程中,如果提示连接超时,重新尝试即可。安装完成后,会出现如下提示信息:

install2.png

安装完成后,在命令行输入 mapshaper -h 即可查看所有可用命令:

command.png

1.7 Mapshaper命令分类

Mapshaper的命令分为三大类,每类命令都有其特定的用途:

1. I/O命令(输入/输出)

  • -i:输入一个或多个文件

  • -o:输出编辑后的内容

2. 编辑命令

  • -clip:裁剪数据

  • -dissolve:合并要素

  • -erase:擦除要素

  • -simplify:简化数据

  • -join:连接属性

  • -merge:融合图层

  • -proj:投影转换

  • ……以及更多编辑命令

3. 信息类命令

  • -calc:统计计算

  • -info:数据信息

  • -inspect:要素属性

  • -projections:投影信息

  • -version:版本信息

  • ……以及其他信息命令


二、Mapshaper使用说明之一:简介与安装

2.1 Mapshaper的基本概念

Mapshaper是一款用JavaScript开发的软件,专门用于编辑和处理Shapefile、GeoJSON、TopoJSON等格式的空间数据。它提供了强大的命令行工具,支持地图制作所需的各种任务,包括数据简化、属性编辑、空间裁剪、要素擦除、图层合并、数据过滤等操作。

2.2 Mapshaper的安装方法

Mapshaper的安装以Node.js为前提。在安装Mapshaper之前,需要先安装Node.js。Node.js安装完成后,即可使用npm(Node Package Manager)安装最新版本的Mapshaper。

在命令行中执行以下安装命令:

npm install -g mapshaper

2.3 Mapshaper命令分类

Mapshaper的命令分为三大类:

1. I/O命令(输入/输出)
表示文件输入/导出的命令,常见的数据转换操作属于此类,如Shapefile转GeoJSON、GeoJSON转Shapefile等。

2. 编辑命令
用于数据编辑的命令,常用的如裁剪(clip)、融合(dissolve)、擦除(erase)、简化(simplify)、连接(join)、合并(merge)、投影(proj)等。

3. 信息类命令
表示数据或程序信息的命令,如计算(calc)、投影信息(projections)、版本信息(-version)等。

2.4 命令行使用示例

示例1:Shapefile转GeoJSON
将shapefiles文件夹下所有的shape文件转化成geojson文件,并存储到output文件夹下:

mapshaper shapefiles/*.shp -o output/ format=geojson

示例2:裁剪数据
用land-area.shp裁剪usa_counties.shp:

mapshaper usa_counties.shp -clip land-area.shp -o

示例3:查看投影信息
列出mapshaper支持的所有投影类别:

mapshaper -projections

三、Mapshaper使用说明之二:命令汇总

3.1 I/O命令(输入/输出)

I/O命令用于数据的输入和输出,是Mapshaper最基础的命令类型。

1. -i 输入
输入一个或多个文件。支持的格式包括Shapefile、GeoJSON、TopoJSON、DBF、限定文本格式等。

2. -o 输出
输出编辑后的内容。支持的格式包括Shapefile、GeoJSON、TopoJSON、JSON、DBF、CSV、TSV、SVG等。

3.2 编辑命令

编辑命令是Mapshaper的核心功能,用于对空间数据进行各种编辑操作。

空间处理命令

  • -clip:移除裁剪范围外的要素或部分要素

  • -erase:移除落在多边形范围内的要素或部分要素

  • -dissolve:合并多边形或点要素,删除公共边界

  • -dissolve2:合并相邻或重叠的多边形(考虑拓扑关系)

几何处理命令

  • -simplify:利用Douglas Peucker或两种折线简化方法对数据进行简化

  • -explode:将多部件要素拆分成几个独立的要素

  • -lines:将多边形转成有拓扑的边界

  • -innerlines:创建由共享边界构成的线状图层

  • -points:从多边形或属性表创建点要素图层

  • -point-grid:创建矩形网格点

  • -graticule:创建经度为0度、覆盖世界的网格图层

属性处理命令

  • -each:利用JS表达式创建/更新/删除数据项

  • -filter:通过条件过滤掉不满足条件的要素

  • -filter-fields:删除属性表中的字段

  • -filter-islands:移除小的独立的环状多边形/孤岛

  • -filter-silvers:通过面积过滤多边形小碎片

  • -join:将源图层或文件的属性数据连接到目标图层

  • -rename-fields:重命名数据域

其他编辑命令

  • -cluster:将多边形分成简洁的聚簇组

  • -merge-layers:将几个图层的多个要素融合到一个图层中

  • -sort:利用JS表达式对要素进行排序

  • -split:基于属性值将目标层的数据拆分到多个输出层中

  • -split-on-grid:指定行列数将要素分割成独立的图层

  • -subdivide:递归地分离图层

  • -svg-style:为svg格式输出和在web UI中的展现添加通用svg样式属性

  • -target:设置默认目标图层

  • -uniq:删除与前面要素id重复的要素

  • -rename-layers:重命名图层

  • -proj:利用proj4字符串或别名投影数据集

3.3 信息类命令

信息类命令用于查询数据信息、统计计算和程序信息等。

1. -calc 统计
利用JS表达式计算并展现数据表的基本描述性统计结果。支持的函数包括:count()、sum()、average()、median()、mode()、min()、max()、collect()、first()、last()。

2. -encodings 编码
列出所有的文本编码格式。

3. -help / -h 帮助
输出有用的信息和一系列的命名。

4. -info 数据信息
打印数据集的信息,对于查看图层属性表的字段很有帮助。

5. -inspect 要素信息
列出属性表中一条要素的信息。

6. -projections 投影信息
打印支持的proj4投影id和投影别名信息。

7. -quiet 静默
禁止控制台信息。

8. -verbose 详细
打印详细的信息,包括每个步骤的执行时间。

9. -version 版本
版本信息。


四、Mapshaper使用说明之三:Input与Output命令详解

4.1 输入命令 -i

输入命令 -i 允许输入一个或多个shape、json、dbf或限定文本格式的文件。如果 mapshaper 后紧跟输入的文件名,命令 -i 可省略。

支持的文件格式

  • Shapefile:.shp、.shx、.dbf等文件

  • GeoJSON:基于JSON的地理数据格式

  • TopoJSON:GeoJSON的扩展格式,支持拓扑关系

  • JSON:数据记录的数组

  • DBF:属性表文件

  • 限定文本格式:CSV、TSV等

主要参数

  • files:输入的单个或多个文件(以空格分割的列表)

  • merge-files:将输入多个文件中的要素合并到尽可能少的图层中(不推荐使用)

  • combine-files:以共享拓扑的方式导入多个文件到分离的图层中

  • snap:将极小阈值范围内的顶点捕捉到一起

  • no-topology:在处理大数据量文件时,忽略拓扑标记以加快处理的速度

  • encoding=:指定读取.dbf和限定格式文本文件的编码格式

  • id-field=:对于geojson和topojson文件,引入属性id的值到数据项中

  • field-types:属性的数据类型

  • name=:重命名引入的图层

使用示例
以latin1编码方式输入一个shapefile,同时查看包含的数据内容:

mapshaper countries_wgs84.shp encoding=latin1 -info

4.2 输出命令 -o

输出操作将编辑的内容保存到文件中,默认情况下,如果检测到命名冲突,mapshaper会在文件名后添加后缀,以避免覆盖已存在的文件。

支持的输出格式

  • shapefile:Shapefile格式

  • geojson:GeoJSON格式

  • topojson:TopoJSON格式

  • json:包含每个要素属性的对象的数组

  • dbf:DBF属性表格式

  • csv:逗号分隔的文本文件

  • tsv:制表符分隔的文本文件

  • svg:可缩放矢量图形格式

主要参数

  • file|directory|-:输出文件名称或路径

  • format=:指定输出格式

  • target=:指定导出的图层

  • force:遇到命名冲突时,直接覆盖已有的文件内容

  • cut-table:将shapefile文件的属性数据分离出来并保存成json文件

  • drop-table:从输出文件中移除属性数据

  • precision=:以指定的精度对所有的坐标进行四舍五入

  • bbox-index:为每个输出的图层创建一个包含要素范围的json文件

  • delimiter=:针对CSV格式文件,设定csv或限定文本字段间的分隔符

  • bbox:针对输出格式为topojson或geojson,在顶层对象上增加范围属性

  • prettify:针对输出格式为topojson或geojson,格式化输出内容保证文件的可读性

  • id-field=:针对输出格式为topojson、geojson和svg,指定一个或多个字段作为要素的id

  • width=:针对svg格式,设置svg视图的宽度

  • margin=:针对svg格式,设置坐标数据与视图边缘的范围

使用示例
将一个文件夹下所有的shapefile文件转换成geojson文件,并输出到另一个不同文件夹下:

mapshaper shapefiles/*.shp -o output/ format=geojson

五、Mapshaper使用说明之四:编辑命令详解

5.1 空间处理命令

1. -clip 裁剪
移除裁剪范围外的要素或部分要素。

参数

  • source:数据源,通过裁剪多边形的文件名或图层id指定裁剪的多边形要素数据集

  • bbox=<xmin,ymin,xmax,ymax>:通过bbox指定裁剪的范围

  • remove-slivers:移除由裁剪产生的极小长条形多边形

使用示例
使用land-area.shp裁剪usa_counties.shp:

mapshaper usa_counties.shp -clip land-area.shp -o

2. -erase 擦除
移除落在多边形范围内的要素或部分要素。

参数

  • source:包含移除多边形的文件或图层

  • bbox=<xmin,ymin,xmax,ymax>:通过bbox指定擦除的范围

  • remove-slivers:移除由擦除产生的极小长条形多边形

使用示例
删除usa_counties.shp中在lakes.shp范围内的要素:

mapshaper usa_counties.shp -erase lakes.shp -o

3. -dissolve 合并
以指定的属性合并一组要素,若没有指定属性字段,则合并所有要素。

参数

  • <field>:合并依赖的属性名称

  • weight=:(针对点图层)指定属性名称或JS表达代表各点在生成质心中的权重

  • planar:(针对点图层)在计算合并后的质心时,将十进制的度坐标当作平面直角坐标看待

  • calc=:在合并后的图层中使用构建的JS函数来创建属性

  • sum-fields=:合并时求和的字段名称,多个用逗号分隔

  • copy-fields=:合并时复制(保留)的字段

使用示例
以属性STATE合并要素:

mapshaper counties.shp -dissolve STATE -o states.shp

以属性STATE合并要素,同时计数要素个数、总人口、最大人口和最小人口:

mapshaper counties.shp -dissolve STATE calc='n = count(), total_pop = sum(POP), max_pop = max(POP), min_pop = min(POP)'

4. -dissolve2 合并
与dissolve类似,但可以用来合并相邻或重叠的多边形(考虑拓扑关系),若多边形不相交且数据量很大,使用dissolve。

5.2 几何处理命令

5. -simplify 简化
利用Douglas Peucker或两种折线简化方法对数据进行简化。

参数

  • percentage:移除点的比例,有效值在0%-100%或0-1范围内

  • dp:使用Douglas Peucker简化

  • visvalingam:使用visvalingam简化,利用有效面积度量

  • weighted:使用权重visvalingam简化(默认选项)

  • weighting=:visvalingam简化的加权系数(默认值0.7)

  • resolution=:控制简化数量的输出分辨率

  • interval=:以距离为单位指定简化数量

  • planar:在笛卡尔平面坐标中处理

  • keep-shapes:在高度简化中,防止多边形失去原有形状

  • no-repair:禁止交叉修复

  • stats:显示简化路径几何的摘要统计

使用示例
使用默认的简化方法,保留10%的可移除点:

mapshaper counties.shp -simplify 10% -o

使用Douglas-Peucker简化,阈值设置为100:

mapshaper states.shp -simplify dp interval=100 -o simplified/

6. -explode 打散
将多部件要素拆分成几个独立的要素。

7. -lines 边界
提取多边形的边界(包含拓扑关系)。

参数

  • fields:(可选属性)逗号分隔的属性集

使用示例
提取并区分国界、州界和县界:

mapshaper counties.shp -lines STATE_FIPS -o boundaries.shp

8. -innerlines 共享边界
创建由共享边界构成的线装图层,没有属性数据。

使用示例
提取两个州共享的边界:

mapshaper states.shp -filter 'STATE=="OR" || STATE=="WA"' -innerlines -o

9. -points 点要素
从几何多边形或属性表的值中创建点图层。

参数

  • x=:包含x坐标值的列名称

  • y=:包含y坐标值的列名称

  • centroid:以每个多边形要素最大环的质心创建点

  • inner:以每个多边形要素最大环的内心创建点

使用示例
以每个多边形的内心创建点图层:

mapshaper counties.shp -points inner -o points.shp

10. -point-grid 格网点
创建一个矩形格网点图层。

参数

  • cols, rows:设置网格行列数

  • interval=:相邻点间的距离

  • bbox=:设置格网点的范围

  • name=:设置各网点图层名称

11. -graticule 格网
创建以经度0度为中心、覆盖全球的格网图层。

5.3 属性处理命令

12. -each 属性处理
将JS表达式应用于图层中的每个要素,用来创建、更新和删除数据项。

参数

  • <expression>:应用于每个要素的JS表达式

  • where=:用于筛选要素子集的二级JS表达式

  • target=:目标图层

使用示例
创建STATE_FIPS和AREA两个字段:

mapshaper counties.shp -each 'STATE_FIPS=COUNTY_FIPS.substr(0, 2), AREA=this.area'

删除STATE_NAME和GEOID两个字段:

mapshaper states.shp -each 'delete STATE_NAME, delete GEOID'

字段重命名:

mapshaper states.shp -each 'STATE_NAME=NAME, delete NAME'

13. -filter 过滤要素
使用boolean类型的JS表达式移除不满足条件的要素。

参数

  • expression:结果为true或false的JS表达式

  • remove-empty:删除几何要素为空的要素

使用示例
从usa_counties.shp中选择STATE字段中包含ME、VT、NH、MA、CT、RT的要素:

mapshaper usa_counties.shp -filter '"ME,VT,NH,MA,CT,RI".indexOf(STATE) > -1' -o ne_counties.shp

14. -filter-fields 过滤属性
删除属性表中的属性,保留列出的属性。

使用示例
删除states.shp中的属性,只保留FID和NAME:

mapshaper states.shp -filter-fields FID,NAME

15. -filter-islands 过滤孤岛
移除小的独立的环状多边形或孤岛。

参数

  • min-area=:移除小面积的孤岛设置的阈值

  • min-vertices:移除节点数量少的孤岛设置的阈值

  • remove-empty:删除几何对象为空的要素

16. -filter-silvers 过滤碎片
通过面积过滤多边形小碎片。

参数

  • min-area=:移除的面积阈值

  • remove-empty:删除几何对象为空的要素

17. -join 连接
将源图层或文件的属性数据连接到目标图层。

参数

  • file|layer:包含属性数据记录的文件或图层

  • keys:目标图层和源数据连接的关键字

  • calc=:使用JS表达式和内置函数对源数据表中的值进行计算

  • where=:使用返回值为boolean的JS表达式过来源数据表中的记录

  • fields=:从外部数据表中复制到目标图层中的字段集合

  • sum-fields:若源数据表中的多个记录对应相同的目标记录,需要求和的字段

  • field-types:字段数据类型提示信息

  • force:允许使用源数据表中的值覆盖目标数据表中同字段的属性值

  • unjoined:将源数据表中未连接的记录复制到命名为unjoined的图层中

  • unmatched:将目标数据表中未匹配上的记录复制到命名为unmatched的图层中

使用示例
将点图层与多边形图层进行空间连接:

mapshaper states.shp -join points.shp calc='median_score = median(score), mean_score = average(score), join_count = count()'

将txt文本中的数据连接到states.shp的属性表中:

mapshaper states.shp -join demographics.txt keys=STATE_FIPS,FIPS:str

18. -rename-fields 重命名字段
重命名数据属性名称。

使用示例
将STATE_FIPS重命名为FIPS,STATE_NAME重命名为NAME:

mapshaper states.shp -rename-fields FIPS=STATE_FIPS,NAME=STATE_NAME

5.4 其他编辑命令

19. -merge-layers 融合
将几个图层的多个要素融合到一个图层中。

使用示例
将分离的多个州图层文件融合到太平洋州图层中:

mapshaper -i OR.shp WA.shp CA.shp AK.shp combine-files -merge-layers -o pacific_states.shp

20. -sort 排序
使用JavaScript表达式对数据图层中的要素进行排序。

参数

  • expression:将JavaScript表达式应用于每个要素

  • ascending:升序排列(默认)

  • descending:降序排列

21. -split 拆分
依据属性表中的值对目标图层中的要素进行分类并输出到不同的图层中。

参数

  • field:属性字段名称

使用示例
依字段STATE对要素进行分类并分别输出成geojson文件:

mapshaper states.shp -split STATE -o format=geojson

22. -split-on-grid 格网分开
利用指定行列数的格网单元将要素分成不同的图层。

参数

  • cols, rows:格网的大小

23. -subdivide 分类要素
使用结果为boolean型的JavaScript表达式递归地分离图层。

24. -cluster 聚类
将多边形分成简洁的聚簇组。

25. -rename-layers 重命名图层
为图层指定新的名称。

参数

  • names:一个或多个图层名称,多个名称之间以逗号分隔

  • target=:重命名数据集的所有图层

26. -target 目标设置
设置默认的目标图层。

参数

  • target:名称或图层id,第一个图层id为1

27. -uniq 删除重复
删除与前面要素具有相同id的要素。

参数

  • expression:获取要素id的JS表达式

28. -svg-style 样式
为SVG输出和Web UI中的展示增加普通的样式属性。

参数

  • class=:一或多个css类

  • fill=:填充颜色

  • stroke=:边框颜色

  • stroke-width=:边框宽度

  • opacity=:符号透明度

  • r=:圆半径(点要素作为圆导出)

29. -proj 投影
使用proj4字符串或别名投影数据集。

参数

  • densify:沿直线段插值节点以拟合近似曲线

  • from=:如果源数据的坐标系未知,可预定义其坐标系统

使用示例
利用proj4字符串,将geojson文件转换为New York Long Island飞机坐标:

mapshaper nyc.json -proj +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m -o

将投影的shapefile文件转换为WGS84:

mapshaper area.shp -proj wgs84 -o

六、Mapshaper使用说明之五:信息类命令详解

6.1 统计计算命令

1. -calc 统计
利用JS表达式计算并展现数据表的基本描述性统计结果。

支持的函数

  • count():计数,没有参数

  • sum():求和

  • average():平均值

  • median():中位数

  • mode():众数

  • min():最小值

  • max():最大值

  • collect():返回包含所有值的集合

  • first():第一个值

  • last():最后一个值

参数

  • expression:包含调用一个或多个-calc函数的JS表达式

  • where=:利用返回值为boolean的JS表达式对要素进行过滤

  • target=:指定目标图层

使用示例
计算字段POPULATION的和:

mapshaper ny-census-blocks.shp -calc 'sum(POPULATION)'

统计POPULATION=0的记录数据:

mapshaper ny-census-blocks.shp -calc 'count()' where='POPULATION == 0'

6.2 数据信息命令

2. -info 数据信息
打印数据集的信息,对于查看图层属性表的字段很有帮助,对于总结一系列命令的结果也很有作用。

使用示例
获取json数据的信息:

mapshaper mystery_file.json -info

3. -inspect 要素信息
列出属性表中一条要素的信息。

参数

  • expression:用于选择一个要素的JS表达式

  • target:指定目标图层

使用示例
查看states.geojson中Name='Delaware’的要素信息:

mapshaper states.geojson -inspect 'NAME == "Delaware"'

6.3 程序信息命令

4. -help / -h 帮助
输出有用的信息和一系列的命名。

参数

  • command:显示单个命令的可选参数

使用示例
查看json命令的帮助信息:

mapshaper -h json

5. -version 版本
版本信息。

使用示例
查看Mapshaper版本:

mapshaper -version

6. -projections 投影信息
打印支持的proj4投影id和投影别名信息。

使用示例
列出所有支持的投影:

mapshaper -projections

7. -encodings 编码
列出所有的文本编码格式。

使用示例
列出所有支持的编码:

mapshaper -encodings

6.4 控制命令

8. -quiet 静默
禁止控制台信息。

使用示例
静默模式执行命令:

mapshaper input.shp -o output.geojson -quiet

9. -verbose 详细
打印详细的信息,包括每个步骤的执行时间。

使用示例
详细模式执行命令:

mapshaper input.shp -o output.geojson -verbose

6.5 实际应用场景

1. 数据质量检查
使用-info命令可以快速查看数据的基本信息,包括图层名称、要素数量、字段列表等,这对于数据质量检查非常有用。

示例:检查数据质量

mapshaper counties.shp -info

2. 数据统计分析
使用-calc命令可以对数据进行各种统计分析,如计算总和、平均值、最大值、最小值等。

示例:分析人口数据

计算总人口、平均人口、最大人口和最小人口:

mapshaper counties.shp -calc 'total = sum(POPULATION), avg = average(POPULATION), max = max(POPULATION), min = min(POPULATION)'

3. 数据筛选分析
结合-where参数,可以对满足条件的要素进行统计分析。

示例:分析特定区域的数据

统计STATE='CA’的县数量和总人口:

mapshaper counties.shp -calc 'count = count(), total = sum(POPULATION)' where='STATE == "CA"'

4. 要素详情查看
使用-inspect命令可以查看特定要素的详细属性信息,这对于调试和问题排查非常有用。

示例:查看特定要素

查看FIPS='06001’的要素信息:

mapshaper counties.shp -inspect 'FIPS == "06001"'

七、总结

Mapshaper是一款功能强大的轻量级GIS数据处理工具,基本上支持所有常用的GIS数据处理操作。对于少量的数据处理,我们完全可以使用Mapshaper来代替大而全的ArcGIS Desktop。

通过本系列文章的学习,读者应该已经全面掌握了Mapshaper的使用方法:

  1. Mapshaper简介与安装:了解了基本概念和使用方式

  2. 命令汇总与分类:了解了所有命令的概览

  3. Input与Output命令详解:掌握了数据导入导出的方法

  4. 编辑命令详解:掌握了29个编辑命令的使用方法

  5. 信息类命令详解:掌握了数据查询和统计分析的方法

Mapshaper具有以下优势:

  • 快速高效:处理速度快,特别适合数据简化和格式转换

  • 易于学习:命令简洁直观,上手快

  • 跨平台:支持Windows、Mac、Linux等操作系统

  • 批量处理:支持命令行批处理,适合自动化工作流

  • Web友好:输出GeoJSON、TopoJSON等Web友好格式

  • 拓扑支持:支持拓扑关系处理,保证数据质量

希望本文能够帮助读者快速掌握Mapshaper的使用方法,提高GIS数据处理的效率!

八、相关资源

欢迎试用Mapshaper汉化版:https://yougis.com.cn/mapshaper

0

评论区