ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Mapshaper 新特性全景:2026 年 CLI 命令与 Web UI 的关键更新深度指南

Mapshaper 新特性全景:2026 年 CLI 命令与 Web UI 的关键更新深度指南 GISCLI数据可视化【免费下载链接】mapshaperTools for editing Shapefile, GeoJSON, TopoJSON and CSV files项目地址https://gitcode.com/gh_mirrors/ma/mapshaper点击查看免费下载Mapshaper 是一款用于编辑 Shapefile、GeoJSON、TopoJSON 与 CSV 等地理数据的开源工具同时提供命令行CLI与浏览器端 Web UI 两种使用形态。本文基于仓库中 docs/whats-new.md 的官方新特性清单系统梳理 2026 年 4 月至 9 月 Mapshaper 陆续发布的用户可见功能从栅格影像的导入、模糊、等高线与 GeoTIFF 导出到饼图/甜甜圈符号、-repel碰撞疏散、命令文件与变量插值再到 Web UI 的预览模式、Snip 剪断工具与标签就地编辑。读完本文你将能够按版本脉络掌握这些新命令的用法、关键参数及其源码级实现原理并知道在 命令参考、指南 与 CHANGELOG.md 中进一步查阅细节。完整变更历史含 bug 修复与内部改动请参阅仓库根目录的 CHANGELOG.md本文只聚焦于面向用户的新增能力。2026 年 9 月预览模式、标签编辑与饼图符号Web UI 预览模式Preview modeWeb UI 新增了一个预览开关可以直观展示地图导出后的最终效果。目前带样式的地图只有 SVG 一种导出格式更多格式在规划中且预览模式下仍然可以继续编辑地图图层编辑与预览之间无需中断切换。预览模式在 v0.7.63 中与新的地图框Map frame界面一同引入——地图框用于设定输出的尺寸与地理范围符号和标签会随地图缩放按比例缩放这正是预览所见与导出所得一致的基础。相关实现位于 src/furniture/地图框与比例尺等地图家具与 src/gui/界面逻辑。标签编辑的全面升级Improved label editingWeb UI 的标签工具在 v0.7.62 中替换了旧的图层样式工具并随之带来四项显著改进就地编辑标签文本现在直接在地图上原地修改不再需要打开独立编辑框。曲线标签曲线标签沿一条路径排列而不是锚定在一个点上。通过点击地图逐点创建路径程序会自动用平滑曲线连接各点v0.7.64 还专门修正了 Hobby 样条在某些几何形态下“鼓包”的倾向。区域文本自动换行区域文本按设定的宽度换行。点击地图放置一个默认尺寸的文本块或者拖拽以设定宽度v0.7.67 引入的 area text 类型。标注线Callouts标注线以直线、折线elbow或曲线将标签连接到其锚点并可带箭头在标签面板的 Callout 区域添加。v0.7.72 又新增了callout-endring可在锚点处绘制一个空心圆环作为标注线终点。光晕Halos光晕在标签文本外圈绘制轮廓线以提升可读性位于标签面板的 Halo 区域v0.7.67 起支持。标签相关的底层命令是-labelsv0.7.70 新增负责将点转为标签-labels textNAME或添加单个标签-labels coordinatesx,y text...。font-size、halo-width、callout等标签选项都归入-labels名下而-style仍接受这些标签选项以保持旧脚本兼容。标签路径导出、软换行、加粗选择等细节参见 标签相关测试 与 样式与符号指南。饼图与甜甜圈符号Pie and donut symbols-symbols命令新增了pie类型v0.7.58 引入用于在地图上绘制饼图统计符号values列表设定每个扇区的大小可接受数字、字段名或表达式fills列表设定各扇区颜色加上hole后符号变为甜甜圈正值按半径计算内孔负值则从外缘向内量取得到一圈固定宽度的扇区环带。从源码 src/symbols/mapshaper-pie-symbols.mjs 可以看到具体实现第一个扇区从符号顶部开始其余扇区按顺时针排列无值或填充色无效的扇区会被跳过形成饼图上的缺口而不会挤动后续扇区。hole的处理在getPieRadii()中hole 0时内径取该值hole 0时内径为outer hole且内径不小于外径时回退为普通饼图。整个饼图在底层被构造为一个group类型的 SVG symbol每个扇区是一个 polygon part由 src/commands/mapshaper-symbols.mjs 写入记录的svg-symbol字段——这也解释了为什么 pie 类型不支持geographic选项单个 fill 字段无法表达多扇区配色。相关用法参见 styles and symbols 指南。2026 年 8 月Repel 疏散、等值面与 Clean 改进-repel命令消除圆形符号重叠-repel用于移除或减少圆形符号之间的重叠v0.7.56 引入v0.7.57 增加marginmax-shift把符号限制在其真实位置的给定像素距离之内防止疏散时漂移过远。polygons把符号约束在所在多边形边界内一个代表某区域的符号不会漂进相邻区域。从 src/commands/mapshaper-repel.mjs 的源码看该命令把每个符号布局为覆盖它的圆在“显示像素空间”中运行一次碰撞求解模拟所有被目标图层共享同一模拟因此不同图层的符号也会互相让开。布局比例尺来自目标关联的地图框或width选项。padding与margin是两种不同的间距语义——padding是围绕每个符号的边距一对符号的净间距为两者 padding 之和margin则是符号向每个邻居主张的最小间隙一对取较大者。ticks与strength控制求解器的迭代次数与力度。max-shift、padding、margin均接受数字、字段名或表达式见getPixelValueAccessor()。命令结束后会报告“移动了多少符号、剩余多少可见碰撞”并给出增大max-shift或放弃polygons的建议。-repel需要投影后的单点图层符号半径来自radius、svg-symbol或r字段圆环、饼图与甜甜圈符号以group形式存在同样支持。相关测试见 test/symbols-test.mjs。-contours closed等值面Isobands-contours命令新增closed标志用于从栅格生成闭合的多边形等值带v0.7.54 引入。生成的每个等值带带有upper与lower两个属性分别表示该带的上、下边界值。实现上src/commands/mapshaper-contours.mjs 在opts.closed分支调用buildClosedContourDataset()定义于 src/rasters/mapshaper-raster-contour-bands.mjs把等高线转为闭合多边形带默认仍会对结果做一次自动平滑以去除栅格阶梯状伪影no-smoothing可关闭。关于栅格等高线的完整选项interval、levels、base、band、field参见 命令参考 与栅格实现文档 docs/development/raster-implementation.md。-clean命令改进-clean命令有两项重要更新新增close-outer-gaps选项关闭多边形镶嵌中朝外敞开的裂缝使其像封闭间隙一样被填充。由于覆盖面上一个狭窄开口不一定是错误该选项是显式开启的。源码中对应pinchOuterCrackMouths()src/polygons/mapshaper-close-gaps.mjs先把裂缝口“捏合”成封闭间隙再走常规的间隙划分流程见 src/commands/mapshaper-clean.mjs 中close_outer_gaps分支。gap-width成为设置间隙填充阈值的首选方式间隙伪影通常是又长又细的细条因此用宽度参数比旧的面积参数更合适。从 v0.7.53 起-clean默认就应用宽度测试gap-widthauto等价于旧的gap-fill-areaautosliver-control1组合gap-fill-area与sliver-control已弃用但仍被接受。间隙宽度由其面积与周长估算因此细长裂缝会被填充而面积相近但更紧凑的孔洞如小湖更可能被保留。-filter-slivers也同步接受了gap-width。Web UI Snip 工具剪断折线Web UI 新增 Snip 模式用于把折线要素剪断分开v0.7.52 引入悬停在线条上可查看其顶点点击一个顶点或线段上的任意一点即可将其一分为二。较短的一段会成为新的要素因此在多部件要素上其余部分保持连接环ring需要点击两次因为一次剪断仍会留下一整条。设计细节见 docs/development/snip-tool-design.md。2026 年 7 月栅格 GeoTIFF 导出、等高线、模糊与世界投影栅格导出为 GeoTIFF栅格图层现在可以导出为.tifGeoTIFF 文件v0.7.49 引入文件默认压缩Deflate。导出实现位于 src/geotiff/mapshaper-geotiff-export.mjs像素保持源数据类型保留图层的 nodata 值没有 EPSG 代码的投影会逐参数写入文件的 geo keys少数 GeoTIFF 完全无法描述的投影会另写.aux.xml侧车文件并且 Mapshaper 能正确重新导入该侧车文件。Web UI 中 GeoTIFF 已成为栅格导出的默认格式。参见 文件格式总览 与 栅格指南。从栅格提取等高线-contours命令可以从栅格图层追踪等高线——典型场景是从数字高程模型DEM生成高程等高线。Mapshaper 会根据数据自动挑选合理的线间距也可以用interval自行设定或用levels列表指定多个层级追加可以保留原栅格图层-contours 。追踪出的线默认按自动选取的一个像素间隔做平滑no-smoothing可跳过相关实现见 src/rasters/mapshaper-raster-contours.mjs 与 src/commands/mapshaper-contours.mjs。-blur命令平滑栅格-blur命令接受两种半径像素-blur 5px真实世界距离-blur 500mv0.7.49 起支持借助每个地面像素的大小换算在运行-contours之前对高程模型做轻微模糊是获得更平滑、更概括的等高线的有效手段。从源码 src/rasters/mapshaper-raster-blur.mjs 看模糊采用高斯核的三次 box blur 近似BOX_BLUR_PASSES 3sigma 半径/2RGBA 栅格会先对 alpha 做预乘再模糊避免彩色边缘渗色存在无效nodata像素时会启用加权模糊使空洞不会污染有效数据。命令本身位于 src/commands/mapshaper-blur.mjs要求投影后的数据集。中断与多面体世界投影-proj命令支持一系列中断与多面体世界投影Goode Homolosineigh陆地方向、igh_o海洋方向Mollweideimoll、imoll_oDymaxionBuckminster Fuller 的 Airocean 地图dymaxionGray-Fuller 变换兼顾形状与面积与dymaxion2gnomonic 投影蝴蝶图两个八面体蝴蝶投影butterfly太平洋为中心、butterfly2大西洋为中心Cahill-Keyescahill_keyesAuthaGraph 2022Hajime Narukawa 发布的 2022 版公式narukawa2022四面体矩形世界地图markley、calm两个使用四面体几何的共形矩形投影v0.7.47 引入-graticule命令可为所有这些投影生成经纬网、多边形足迹footprints与图框线neatlines-graticule outline。注意这些投影只能作为目标 CRS 使用不能作为源 CRS对于沿线产生明显弯曲的投影建议加上densify选项为长线段插值额外顶点。完整示例参见 投影指南 的“Interrupted and polyhedral world projections”一节# 用 Goode Homolosine 投影世界多边形并添加经纬网 mapshaper world.geojson \ -proj projigh \ -o world-igh.geojson \ -graticule \ -o graticule-igh.geojson投影实现分散在 src/crs/ 目录如 mapshaper-dymaxion.mjs、mapshaper-cahill-keyes.mjs、mapshaper-narukawa2022.mjs、mapshaper-butterfly-projections.mjs 与 mapshaper-lee-tetrahedral.mjs对应测试见 test/interrupted-projections-test.mjs、test/dymaxion-test.mjs 与 test/narukawa2022-test.mjs。Web UI 标尺工具Ruler toolWeb UI 新增标尺模式用于测量地图上的距离v0.7.41 引入v0.7.42 支持 shift 点击测量多段连线v0.7.46 起默认优先显示大圆距离支持大圆geodesic测量、投影距离读数、底图视图以及可拖拽的标尺端点。2026 年 6 月平滑与缓冲区-smooth命令按比例尺感知平滑几何-smooth将多边形与折线要素的几何平滑到给定分辨率v0.7.30 引入v0.7.33 起默认保留尖角。其核心是一套尺度感知的高斯Savitzky–Golay低通滤波distance参数设定输出分辨率比该细节更细的细节被移除较大特征得以保留。主要特性默认保留尖角直线段相遇形成的尖角默认不被圆化no-corners可关闭corner-bias可调节尖角检测灵敏度。默认预过滤默认应用预过滤以移除亚尺度细节栈桥、狭窄水湾、尖刺等no-prefilter可跳过。gain控制输出曲线的振幅0 禁用曲率收缩修正1 夸大弯曲。max-bend-angle在输出顶点数与连接平滑度之间取舍默认 8 度值越大保留顶点越少。planar平面模式选项另有未文档化的strength作为平滑核的倍数默认 1。v0.7.36-0.7.39 还修复了尖角检测、大型环上的性能瓶颈移除三处 O(n²) 热点并沿直线段稀疏顶点。可视化对比参见 docs/images/ 下的smooth-*.png系列测试见 test/smooth-test.mjs。-buffer命令点、线、面的缓冲区-buffer为点、线与多边形生成缓冲区v0.7.23 引入此后持续加固测地线距离经纬度数据默认使用测地线距离投影数据加geodesic选项同样使用测地线v0.7.26 起。负半径收缩负的radius参数收缩多边形正值向外扩展。topological防止缓冲区与邻近多边形重叠——重叠的缓冲空间按到源多边形的邻近度分配最近者获胜v0.7.28 起适用于为一组相邻多边形生成缓冲使缓冲区扩展到周边空白空间而不覆盖任何原始多边形环。fill-gaps填充封闭孔洞与窄口入口如河流直至其河口且不增长外边界可用max-widening限制加宽量merge-islands处理孤岛v0.7.40。缓冲区实现分布在 src/buffer/ 目录缓冲构建器 mapshaper-buffer-builder.mjs、测地线多边形缓冲等相关测试见 test/buffer-test.mjs、test/buffer-loop-removal-test.mjs。2026 年 5 月栅格支持、点图标、撤销与网格栅格图层支持Mapshaper 现在可以导入 GeoTIFF 栅格以及带 world file 地理配准的 PNG/JPEG 图像v0.7.14 起在 Web UI 中预览、用矩形工具裁剪、并以嵌入 SVG 的图像形式导出v0.7.16 起支持栅格重投影。栅格导入与投影的默认选项对典型图像图层效果良好导入含数据的栅格时可能需设置额外选项均记录在命令参考中-i raster-typeimage|categorical|continuous决定重投影时使用双线性还是最近邻重采样连续测量栅格如高程模型应使用continuous通常可自动检测-proj resampling可覆盖默认-proj nodata-color设定投影区域外的填充色。实现与设计文档见 docs/development/raster-implementation.md 与 docs/development/raster-geotiff-support.md测试见 test/raster-test.mjs。-style点图标-style命令新增icon、icon-size与icon-color选项可绘制圆、方形、圆环、星形等简单点图标v0.7.13 起图标可与标签在同一图层上组合使用。Web UI 命令的撤销/重做Web UI 现在能在工作过程中保存临时恢复数据使控制台命令及其他数据编辑可从弹出工具栏撤销/重做v0.7.10 起。该功能很新可能存在 bug遇到问题请反馈。撤销默认开启可从新增的 History 菜单关闭处理超大数据集时建议关闭v0.7.49 起撤销历史不再受十状态限制仅在恢复数据超过存储上限时才丢弃。核心机制见 src/undo/ 与 src/gui/gui-app-undo.mjs设计与实现文档见 docs/development/undo-redo-implementation.md 与 docs/development/undo-performance-review.md。更多网格选项-grid命令现在可以创建菱形rhombus与三角形triangle网格v0.7.10 起并新增cols、rows、cells控制网格单元尺寸作为原interval的替代cell-scale在网格内缩放每个单元在相邻单元间制造间隙或重叠取值范围 0–2v0.7.59 又增加了typecairo开罗镶嵌与rotate旋转任意角度。实现位于 src/grids/方形网格 mapshaper-square-grid.mjs、六边形 mapshaper-hex-grid.mjs测试见 test/grid-test.mjs。GeoParquet 支持Mapshaper 可以读写 GeoParquet.parquet文件v0.7.8 起默认使用 Snappy 压缩若要改用 ZSTD可在输出选项中添加compressionzstd-o level可设定 ZSTD 压缩级别1–22。v0.7.50 起导出通过跳过 GeoJSON 中转来大幅降低内存占用并提速行组按估计字节数目标约 16MB而非固定行数划分-o rowgroup可显式设定每行组行数。参见 GeoParquet 格式文档 与 test/geoparquet-export-test.mjs。2026 年 4 月消息面板、命令文件与格式扩展消息面板Messages panel警告与信息消息现在集中收集在一个消息面板中有新消息时标题栏会出现带计数的图标点击即可打开面板。这让重要信息始终可访问又不会像模态弹窗那样打断当前会话。命令文件Command files一系列 Mapshaper 命令可以写入.txt文件使用#注释且无需 shell 转义然后通过-run file运行——也可以直接mapshaper commands.txt作为-run的快捷方式。命令文件也可以按 shell 兼容方式编写尾随\续行、无#注释从而可以直接粘贴到终端或加入 shell 脚本。更新这些文件也可以在浏览器 UI 中导入并运行v0.7.46 起在控制台使用-run。mapshaper build.txt命令文件的格式约定.txt文件的第一条非空、非注释行以mapshaper开头mapshaper -i provinces.shp # 使用 Douglas-Peucker 简化 -simplify dp 20% -o precision0.00001 output.geojson与 shell 脚本 / Makefile 相比命令文件提供几项便利支持#注释独立行与行尾均可无需转义*等 shell 元字符命令不经 shell 传递尾随反斜杠续行可用但不必须——不以-开头的行会并入上一条命令。详细语法与-run用法见 命令行文档实现位于 src/cli/mapshaper-run-command-file.mjs测试见 test/run-command-file-test.mjs。命令中的变量插值Variable interpolation命令文件与命令行支持{{VAR}}占位符在每条命令运行前解析取值来源包括环境变量{{env.HOME}}新命令-vars与-defaults设定的值-vars总是覆盖-defaults只在值不存在时设定-calc、-define与-each表达式动态定义的变量表达式向global对象赋值。mapshaper -vars YEAR2030 PCT5 -run build.txt两种形式被识别{{VAR}}替换为VAR的值{{env.NAME}}替换为环境变量NAME的值。该语法可以插值整个或部分命令选项例如-simplify {{SIMPLIFY_METHOD}} resolution{{SIMPLIFY_RESOLUTION}}。-vars/-defaults写入模板作用域存储其他命令写入表达式作用域global{{X}}先查模板作用域再回退到表达式作用域因此四种机制的值都可达。注意JS 表达式中的裸名称只能看到表达式作用域——由-vars设定的名称在-each、-filter等中不能通过裸名称读取。详见 命令行文档、表达式指南 与实现 src/cli/mapshaper-vars-utils.mjs、test/vars-utils-test.mjs。告别 dissolve2-dissolve命令现在使用 Mapshaper 最稳健的 dissolve 函数v0.7.53 起可以处理重叠、间隙及其他拓扑错误旧的更快算法仍可通过-dissolve no-repair使用。旧的-dissolve2现在只是-dissolve的别名。相关实现见 src/dissolve/mapshaper-polygon-dissolver.mjs 与 src/dissolve/mapshaper-polygon-dissolve2.mjs测试见 test/dissolve-test.mjs 与 test/dissolve2-test.mjs。FlatGeobuf 与 GeoPackage 支持Mapshaper 现在可以读写 FlatGeobuf.fgb与 GeoPackage.gpkg文件。GeoPackage 支持多图层读写-i layers选择图层FlatGeobuf 导出会用图层名作为数据集头信息两格式导出在 v0.7.50 起也跳过 GeoJSON 中转以降低内存并提速。参见 FlatGeobuf 格式文档、GeoPackage 格式文档 与对应测试 test/flatgeobuf-export-test.mjs、test/geopackage-import-test.mjs。SVG 导入Mapshaper 导出的 SVG 文件可以重新导入v0.7.7 起支持带元数据的往返以-o metadata导出的 SVG 会写入可在 Adobe Illustrator 往返后存活的元数据重新导入时恢复原始地理坐标非常适合做样式层面的迭代编辑。参见 SVG 格式文档。结语从 2026 年 4 月到 9 月Mapshaper 沿着两条主线快速演进一是把栅格GeoTIFF/PNG/JPEG与更多现代格式GeoParquet、FlatGeobuf、GeoPackage纳入导入、处理与导出管线补齐了-blur、-contours含等值面、-smooth、-buffer、-repel、-symbols pie等一批面向制图生产的命令二是大幅强化 Web UI 的交互编辑体验——标签就地编辑、Snip 剪断、标尺、预览模式与可开关的撤销/重做。这些能力均已落地于当前仓库的源码与测试中读者可以结合 命令参考、使用指南 与 CHANGELOG.md 按需深挖。赞分享GISCLI数据可视化【免费下载链接】mapshaperTools for editing Shapefile, GeoJSON, TopoJSON and CSV files项目地址https://gitcode.com/gh_mirrors/ma/mapshaper点击查看免费下载相关推荐Proxmark3最新特性2025年CHANGELOG关键更新解读还在为RFID安全研究工具的复杂性而头疼Proxmark3作为RFID领域的多功能工具2025年迎来了一系列重大更新让安全研究和渗透测试变得更加高效便捷。渗透测试嵌入式物联网网络安全TypeScript 7 原生工具链全景解读typescript-book 新闻频道 2026 年关键更新汇总TypeScript 7 原生工具链全景解读typescript book 新闻频道 2026 年关键更新汇总 导读 本篇文章以开源项目《The Concis文档教程Sphinx 1.4 版本深度解析新特性、不兼容变更与关键修复全景Sphinx 1.4 版本深度解析新特性、不兼容变更与关键修复全景 本文基于当前仓库的官方变更记录 doc/changes/1.4.rst https://l文档开发工具上一篇深入解析R3nzSkin英雄联盟皮肤修改技术的完整实现方案下一篇如何通过JavaScript技术实现九大网盘直链下载自动化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表