mapshaper 入门教程:4 个任务命令跑通 Shapefile 转 GeoJSON 与地图简化

📅 2026/8/21 16:38:57
mapshaper 入门教程:4 个任务命令跑通 Shapefile 转 GeoJSON 与地图简化
mapshaper 入门教程4 个任务命令跑通 Shapefile 转 GeoJSON 与地图简化【免费下载链接】mapshaperTools for editing Shapefile, GeoJSON, TopoJSON and CSV files项目地址: https://gitcode.com/gh_mirrors/ma/mapshaper从官网下载的县级边界文件有 400MB网页地图渲染明显吃力在线转换网站又限大小、限时。mapshaper 是一个基于 JavaScript 的免费开源 GIS 工具提供浏览器网页版与命令行两种形态格式转换、地图简化、空间加工全部在本地完成。一分钟了解 mapshaper一句话定位基于 JavaScript/Node.js 的免费开源MPL-2.0地理数据编辑工具装一次网页和终端都能用。支持格式Shapefile、GeoJSON、TopoJSON拓扑优化的地图格式体积更小、CSV带经纬度的表格、GeoPackage、FlatGeobuf、GeoParquet、KML。两种形态网页版拖拽即用数据全程在浏览器本地处理不上传服务器命令行适合批量处理和重复执行的流水线。安装前提Node.js 20.11 以上一条 npm 命令完成npm install -g mapshaper # 全局安装终端任意位置可用Shapefile 转 GeoJSON 一条命令搞定Web 地图和前端地图库基本都读 GeoJSON数据到手先转格式。命令行写法是输入文件打头后面跟以-开头的子命令从左到右依次执行第一条-i可以省略。mapshaper counties.shp -o counties.geojson # shp 转 geojson输出格式看扩展名 mapshaper data.csv encodinggbk -o data.geojson # 中文乱码时指定 GBK 编码注意两点。一是输出格式由扩展名决定换成.topojson就导出 TopoJSON换成.zip就打包成 Shapefile。二是 CSV 导入出现中文乱码时加encodinggbk指定源编码网页版则勾选 with advanced options 后填写同样的参数。mapshaper 简化参数怎么选文件大本质是顶点多。简化算法按重要程度删掉冗余顶点形状几乎不变体积可以降一个量级。内置三种算法。默认是Visvalingam / 加权面积法对尖锐拐角降权、优先删除线条更平滑、毛刺更少。Visvalingam / 有效面积法逐点删除最小面积三角形的顶点。Douglas-Peucker保证简化后的线与原线保持固定距离适合纯粹减重但高强度下容易产生尖刺。强度有三种指定方式百分比默认方式数值越小删得越多、interval距离距离阈值、resolution显示尺寸按数据整体范围估算最终只展示局部时要当心。mapshaper islands.geojson -simplify 5% keep-shapes -o out.geojson # 5% 强度keep-shapes 防小岛丢失上面命令的意思是按 5% 强度简化keep-shapes保证每个要素至少保留一个环小岛不会被整个删掉。高强度简化可能让相邻边界互相穿过产生自相交。-simplify会自动检测并在相交处回退也可以显式运行-clean修复。想要线条更自然用-smooth做平滑。空间加工-clip、-dissolve、-buffer 三个命令-clip按边界裁剪-dissolve按字段合并-buffer生成等距缓冲区三个命令覆盖大多数制图场景。mapshaper counties.shp -clip east-china.shp -dissolve province -o out.geojson # 先裁出华东再按省合并这一条命令干了两件事先用华东边界图层裁剪县级数据再按 province 字段把相邻县溶解成省级边界。注意-clip要求两个图层处于同一坐标系-dissolve可附加聚合统计如calcn count()统计每个省下辖的县数经纬度数据上-buffer默认是测地线模式2km这类距离按地面量算。mapshaper-xl 处理大文件与高频坑遇到 JavaScript heap out of memory 报错就换大内存版 mapshaper-xl。它默认分配 8GB 堆内存也可以在命令开头指定更大值mapshaper-xl 16gb 输入.shp -o 输出.shp即先分配 16GB 再执行后续命令。GeoJSON、CSV、shp、dbf 支持增量读取多 GB 的文件也能导入。单文件输出上限 2GB超过时用-filter分批导出。网页版可用mapshaper-gui在本地启动界面与在线版一致。️ 命令速查任务命令说明格式转换mapshaper in.shp -o out.geojson输出格式由扩展名决定地图简化-simplify 30%保留 30% 顶点防丢要素-simplify 5% keep-shapes每个要素至少留一个环修自相交-clean清理交叉边界平滑-smooth线条平滑处理裁剪-clip 边界.shp按另一图层边界裁剪合并-dissolve 字段按属性字段溶解合并缓冲区-buffer 2km点线面等距缓冲大文件mapshaper-xl 16gb …分配 16GB 堆内存三句话记住要点子命令以-开头、从左到右串联命令链就是流水线简化先用百分比试强度小要素重要就加keep-shapes内存不够就换 mapshaper-xl。完整参数说明见 docs/ 中的 reference.md专题讲解见 docs/guides/可运行的完整示例见 docs/examples/。【免费下载链接】mapshaperTools for editing Shapefile, GeoJSON, TopoJSON and CSV files项目地址: https://gitcode.com/gh_mirrors/ma/mapshaper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考