当前版本:v1.9 正式版(2026-10-17)
作者:永夜廿九(B 站同名)· 代码以 MIT 协议发布 · 下载最新版本
这是一个在浏览器中修改游戏地图的工具,支持涂色、改色、改名、修改色块边界和导出图片。
你可以用它为游戏的省份图制作视频封面、绘制架空世界版图、给战报配地图,也可以只是查看 1066 年欧亚大陆的势力分布。过去需要打开游戏并截图,再到 Photoshop 中逐块描边;现在这些地图会直接显示在浏览器中,点击任意地块即可修改,修改后可以导出为 PNG,也可以保存成文件,下次继续修改。
不需要安装,不需要登录,不需要联网,完全免费。 下载 HTML 文件后双击即可运行。
| 游戏 | 地图 | 剧本层 |
|---|---|---|
| 十字军之王 3 | CK3 | 1066 |
| 欧陆风云 4 | EU4 | 1444 / 1618 / 1789 |
| 钢铁雄心 4 | HOI4 · HOI4 修改边界 | 1936 / 1939 |
| 维多利亚 3 | Victoria 3 | 1836 |
| 欧陆风云 5 | EU5 · EU5 原尺寸 | 1337 |
CK2 模式正在内测,暂不公开下载。 「EU5 原尺寸」是同一张地图的高分辨率版本,地块更细,打开地图时需要多等几秒。
这些截图都来自游戏自带的地图。HOI4 修改边界是地图作者调整过省份划分的版本;创意工坊中另做一套地图的 mod(例如 KR、PB、TNO),请参阅下面的「使用自定义地图」。
从 v1.9 开始,编辑器和地图包需要分别下载:
① 编辑器本体(电脑版):pdx-map-editor.html,不到 1 MB。双击后用 Chrome、Edge 或 Firefox 打开即可。文件里只有程序代码,没有附带任何地图。
手机 / 平板版:同一个 Release 中还提供 pdx-map-editor-mobile.html,不到 1 MB。用手机浏览器打开后即可使用,支持触屏涂色和双指缩放,界面针对手机重新排布。
② 地图包:在 Releases 附件中下载需要的 7 个 .pdxmap 文件。进入选图页后点击「+ 导入地图包…」,导入后即可使用:
| 地图包 | 大小 |
|---|---|
| CK3 原版 | 2.4 MB |
| EU4 原版 | 0.8 MB |
| HOI4 原版 | 1.5 MB |
| HOI4 修改边界 | 1.5 MB |
| VIC3 原版 | 3.7 MB |
| EU5 原版 | 4.2 MB |
| EU5 原尺寸 | 12.5 MB |
不需要的地图包可以不下载,不会影响其他地图的使用。以前所有地图都打包在同一个文件里,每个人都要下载 35 MB;现在编辑器不到 1 MB,地图可以按需下载。
v1.9 的 Release 中不再提供 35 MB 的全量版。编辑器只包含程序代码,地图通过独立的包下载,这是有意的设计。
确实需要一个包含全部地图的文件时,可以在本机运行 python build_standalone.py --all-maps 自行生成(约 35 MB,所有地图都会打包进去,双击即可使用)。具体说明见 docs/构建与开发说明.md。
.pdxmap 是公开格式。地图作者可以使用 pack_map.py 将已解析的数据打包,玩家导入后即可绘制,不需要等待编辑器专门发布「适配某个 mod」的版本:
python pack_map.py data_kr --id kr-1936 --label "KR 1936" --author 你的名字 --out kr-1936.pdxmap格式和打包说明见 packs/README.md。
- 导入的地图保存在浏览器中,不在 HTML 文件旁边。 刷新页面、关闭后重新打开都不会丢失;但换电脑或清除浏览器数据后需要重新导入。因此请自行保存
.pdxmap原文件。每张地图卡片的右下角也有「导出」,可以重新打包成.pdxmap文件。 - 浏览器无法保存时(例如隐私模式或禁用了本地数据),选图页会明确提示「刷新后会丢失」,这张地图只能在当前会话中使用。
- 涂色内容不会自动保存,刷新页面后会清空。 这是有意设计的,避免让人误以为已经保存。关闭页面前还有未导出的修改时,浏览器会弹出确认提示。需要保留时,请点击「文件 ▾ → 导出涂色」。
① 选择地图。 打开编辑器后会先进入选图页,已导入的地图都会显示在这里。点击地图卡片即可进入;地图较多时,在同一列列表中滚动即可(不再分为两列)。
② 取色。 需要使用地图上已有的颜色时,右键点击该地块即可使用吸管(左侧工具栏中也有「吸管」)。颜色会进入左侧栏的「当前颜色」和「最近使用」,点击即可再次使用。需要全新的颜色时,可以直接修改 HEX 或 RGB 数值。
③ 涂色。 按 E 使用涂抹(按住拖动可以连续涂出一片),按 F 使用填色(每次点击只处理一次,即使点击位置略有偏差,也不会连续涂到其他地块)。涂错时按 R 使用橡皮,或按 Ctrl+Z 撤销。
修改完成后需要保留时,请点击「文件 ▾ → 导出涂色」,保存为 JSON 文件,下次通过「导入」继续修改。
第一次使用时,还可以点击顶栏的「教程」,它会在界面上逐步引导你完成一遍操作。
顶栏从左到右依次为:视图(一排层级按钮,点击即可切换到对应层级)、工具、教程和署名;右侧为设置、↶ ↷(撤销 / 重做)、主菜单和文件 ▾。
「文件 ▾」菜单中包含:导入、导出窗口、导出整图、导出高清地图、导出涂色和导出日志。其中「导入」用于读取涂色文件;地图包需要在选图页导入,也可以直接将文件拖入该页面。
左侧栏从上到下依次为:显示(各层级的颜色、边界和名称开关,另有「清除全部」;有荒地的地图还会显示「清除荒地」)、当前颜色、悬停地块、查找和最近使用。底部状态栏显示地图尺寸、鼠标位置、缩放倍率和当前修改数量。
中间区域是地图:按住鼠标拖动可以平移,滚动滚轮可以缩放,右下角还有一组缩放按钮。
常用快捷键:Ctrl+Z 撤销,Ctrl+Y(或 Ctrl+Shift+Z)重做,方向键移动视角,按住 Shift 可以加大移动幅度。图层按钮上标有编号,按对应数字键即可切换(CK3 / EU4 为 1–7,HOI4 为 1–6,VIC3 为 1–5,EU5 为 1–6)。
| 工具 | 快捷键 | 用途 |
|---|---|---|
| 查看 | Q |
仅查看,不修改地图,防止误涂 |
| 吸管 | W |
取该地块当前显示的颜色。在搜索结果中点击色点、右键取色或点击调色板,取到的颜色都会进入「最近使用」 |
| 填色 | F |
涂上当前颜色,每次点击只处理一次 |
| 涂抹 | E |
涂上当前颜色,按住拖动可以连续涂出一片 |
| 橡皮 | R |
恢复为原来的颜色 |
| 改名 | N |
修改国家、省份或色块的名称 |
填色和涂抹使用同一套涂色范围算法,区别只在于按住拖动时是否连续涂色:涂抹会连续处理,填色不会。
取色后会自动切换到绘图工具,默认切换到涂抹(可以在设置中改为切换到填色)。当前已经在涂抹或填色工具上时,则不会切换;正在填色时取色,不应打断当前操作。
每个游戏都采用相同结构:最前面是剧本(对应某一年或某个开局的状态),接着是一层「空白剧本」(全部为无主地,适合从零开始绘制新世界),再往下才是地区层。区别只在于剧本层数和层级名称:CK3 的剧本层为一层,地区分为帝国、王国、公爵领、伯爵领和男爵领五级;EU4 的剧本层有三层,地区只有区域、地区和省份三级。
CK3 的剧本层对应 1066 年 9 月 15 日的土地归属:每块土地归属于管理它的独立君主(封臣的领地被并入宗主,因此整个神圣罗马帝国显示为同一种颜色,诺曼底公爵的领地则单独算作他自己的政权,与法理视图不一致是正常现象)。当年无人占据的土地会留空:灰色底色、不显示名称,鼠标悬停时也不会列出。
EU4 切换到 1618 或 1789 年时,显示的是该年开局时的版图,与在游戏中选择开局剧本含义相同。HOI4 提供 1936 和 1939 年,Victoria 3 为 1836 年,EU5 为 1337 年。
粒度的用法如下:在剧本层上再次点击更细的层级(例如「省份」),该层级就会成为粒度。此时配色仍来自当年剧本,但边界和涂色范围按粒度层级处理,方便对照剧本修改细部。再次点击同一层级即可取消粒度,回到整块涂色。
| 分组 | 控制内容 |
|---|---|
| 地块 | 行政区划(区域、地区、省份、伯爵领等)的边界、名称和颜色;下方的「父级边界」控制上一级边界是否绘制 |
| 势力 | 你自己绘制的内容:颜色、边界和名称。剧本视图下的国名也由这里控制 |
| 水域 | 「边界」控制水面与水面之间的边界是否绘制;「名称」控制海洋、湖泊、河流和不可通行海域的名称是否显示。仅负责水域之间,海岸线不在范围内。两项默认关闭 |
| 荒地 | 「边界」控制荒地与荒地之间的边界;「名称」控制荒地名称;「自动上色」让荒地根据周围地块自动上色。三项默认关闭 |
「父级边界」位于「地块」组,控制上一级边界是否绘制。例如当前查看「省份」层级,关闭后只显示省份边界。
「势力 · 边界」和「地块 · 边界」可以同时开启,两者互不影响。国名只由「势力 · 名称」这一个开关控制;当年各国名称以及你绘制的色块名称都由它负责。
水域和荒地两组相互独立:即使关闭「地块」和「势力」的边界、名称,水域和荒地对应的边界与名称仍然显示(需要关闭时,单独取消对应复选框即可)。
画面过于杂乱时,可以暂时关闭不需要的颜色、边界或名称,只保留当前关注的层级。
在剧本视图下,涂抹、填色和橡皮使用同一套范围规则:
- 点击的地块已经有涂色:将全图中与它颜色和标记相同的地块视为同一组,一起涂色或还原,可能跨越多个国家。
- 点击的地块尚未涂色:按剧本归属处理,查看该地块当年属于哪个国家,再选择该国中颜色和标记相同的地块(同一国家内被涂成其他颜色的「占领区」不会一并处理)。
- 两种情况都不存在时(例如点击无主地):只修改最低单位对应的那一块。
- 荒地:始终只修改自身所在的那一块,不会整片一起变化。
不在剧本视图时规则更简单:只修改你点击的那一层对应的地块。在省份层点击只修改该省份;在地区或州层点击会同时修改该区域内的省份,不需要逐个点击。
鼠标悬停时高亮的范围与点击后会修改的范围一致。
沙漠、不可通行的山地等地形称为「荒地」,可以像普通地块一样涂色(水域不能涂色)。
没有荒地设定的模式(VIC3 / HOI4 原版)不会显示「荒地」组,设置页中的荒地滑条和「清除荒地」按钮也会一并隐藏。
开启「荒地 · 自动上色」后,工具会根据周围陆地地块当前显示的颜色进行投票:只有当某种颜色占其周边周长的严格多数时,才会为该荒地上色,否则保持荒地的灰色。周围同样是荒地时,颜色会逐圈向内扩展。该功能默认关闭,需要时自行勾选。
「荒地 · 边界」只负责荒地与荒地之间的边界,与陆地或水域相邻的外缘不在其范围内;「荒地 · 名称」只控制荒地名称,与「地块 · 名称」互不影响。
被涂上颜色的荒地不再视为荒地,而成为你所绘制的版图,边界按普通地块处理。
每个连通区域显示一个名称。 同一个名称被涂成多个互不相连的区域时(例如本土、海外省和若干小岛),每个区域都会标注名称,不需要指定哪一块才是主要区域,也不会只保留最大的那一块。小岛上的名称字号会略小;达不到显示门槛时,就不会绘制。
同一张地图上的边界按级别叠加绘制,颜色相同(深蓝黑),通过粗细和浓度区分层级。
| 层级 | 默认浓度 |
|---|---|
| 本层(当前查看的层级) | 省份档 50% |
| 势力边界(年份层、国家轮廓) | 势力档 100% |
| 父级(上一级,开启「父级边界」后才绘制) | 地区档 75% |
| 填色线(你绘制的边界) | 势力档 100%,最粗、实心 |
| 水域之间(独立一档) | 水域档 25% |
| 荒地之间(独立一档) | 荒地档 100% |
本层使用省份档,上一级使用地区档;只要属于国家或年份轮廓,就使用势力档,与它当前是「本层」还是层级链中的父级无关。「势力 · 边界」也使用势力档,因此调淡这一档时,你绘制的边界也会随之变淡。水域和荒地的两组滑条各自独立,不跟随这三档变化。
「势力 · 边界」绘制的是当前显示颜色的分界线(国家层级中,原版配色也会计入边界);在细分层级中,它只勾勒你自己绘制的范围,不会把原版省界一起加粗。
水域之间(海洋、湖泊、河流、不可通行海域彼此相邻)的边界由左侧栏「水域 · 边界」这一个开关控制。它只负责水域与水域之间,宽度和浓度在设置中有独立的一组(设置页边界栏「水域」小标题下的两行)。海岸线不在其范围内:水域与陆地相邻的边界仍由「地块 · 边界」或「势力 · 边界」控制。它也不受其他边界开关影响;即使关闭上述三类边界,它仍然显示,需要关闭时单独关闭它自己的开关即可。荒地边界同理,只负责荒地与荒地之间。
顶栏「设置」中包含四组选项。设置和「最近使用」的颜色会被保存:刷新页面或返回主菜单后再次进入都不会丢失,并且按游戏类型分别保存(CK3 和 EU4 的设置不会互相混用)。同一游戏的多张地图共用一套设置,切换地图时不需要重新调整。需要恢复默认状态时,点击「恢复默认」;「最近使用」右上角有「清空」按钮。
这些设置与涂色互不影响:涂色只针对当前地图,刷新后会清空(参见上文「三个容易遇到的问题」)。
- 颜色:空白区域、无归属区域、不可通行区域、河流、湖泊、海洋和不可通行海域分别使用什么颜色。
- 边界:一组滑条,分为五类(省份、地区、势力、水域、荒地;VIC3 / HOI4 没有荒地时,荒地这一档不显示),每类包含两行:宽度均为 0.5–3,步长 0.5,默认 1;不透明度均为 0%–100%,步长 25%。默认值分别为省份 50、地区 75、势力 100、水域 25、荒地 100。0% 表示该边界完全不绘制。上面那张表说明了这些浓度在哪些位置生效。
- 名称:分为地块和势力两块,各有一个字号倍率(0.5–3,步长 0.1)、一个不透明度(25 / 50 / 75 / 100,默认均为 50)和一个上限(1–21,拉到最右为无上限;地块默认 1,势力默认 12)。上限按面积从大到小保留前 N 个:势力按「一个国家」计算,地块按「一个头衔」计算。
- 其他:导出图例、图例标题、图例位置、取色后切换到(涂抹 / 填色)和恢复默认。
勾选导出图例中的「导出时显示」后,「导出窗口」和「导出整图」会在图角添加图例和标题。图例条目自动来自你绘制的颜色(相同颜色归为一组),名称使用地图上当前显示的名称。还没有涂过任何地块时,图例会先按当前年份的国家列出,制作「1789 年的欧洲」这类纯原版配色的地图也足够使用。
左侧栏搜索框支持四类输入:国家代码(例如 CHI、FRA)、国家名称、省份 / 地区名称和 key(以 c_、d_、k_、e_ 开头的标识)。
每条结果左侧都有一个色点,显示该地块当前的颜色;涂色后色点会随之变化:
- 点击色点只会将颜色取到画笔上,不会移动视图。
- 点击地区 / 省份那一行,视图会移动到该位置并高亮。
- 点击国家那一行不会移动视图,避免正在查看的位置被强行拉走。
- 键盘操作:按回车跳转到第一条可定位的结果,按 Esc 清空搜索框。
| 项目 | 说明 |
|---|---|
| 导出窗口 | 只保存当前屏幕 |
| 导出整图 | 将整张地图导出为 PNG |
| 导出高清地图 | 同一张整图,输出宽高均翻倍。边界会按新尺寸重新绘制,不是简单放大图片,因此细边界不会互相覆盖。代价是文件大小约为四倍,导出速度也会慢一些 |
| 导出涂色 | 将涂色内容(包括修改过的名称和图例设置)保存为 JSON |
| 导入 | 读取该 JSON 文件后继续修改 |
| 导出日志 | 将本次运行现场保存为诊断报告(.txt):环境、浏览器、显卡、当时查看的地图和层级、出现过的错误(包含堆栈和次数)、操作时间线,最后附上一段机器可读的 JSON |
| 清除全部 | 位于左侧栏「显示」区最下方,一次性恢复所有改动 |
| 清除荒地 | 位于左侧栏「显示」区最下方,清除荒地上的涂色,并关闭「荒地 · 自动上色」 |
诊断报告平时不需要使用。 遇到问题或想提出新功能建议时,可以将该文件发送到 B 站评论区,比只说「它坏了」有用得多。加载界面右下角也有「导出诊断报告」;编辑器尚未启动或无法启动时,这是唯一还能保存现场信息的地方。
Q:需要付费吗?需要登录吗?
A:都不需要。完全免费,无需登录,也无需注册。
Q:在哪里下载?如何打开?
A:从 Releases 下载 pdx-map-editor.html,双击用浏览器打开;手机版为 pdx-map-editor-mobile.html。
Q:需要安装什么吗?需要联网吗?
A:不需要安装或注册,下载后可在本地离线运行;地图包保存在浏览器中。
Q:手机可以使用吗?
A:可以。下载手机版 HTML,用手机浏览器打开;支持单指涂色和双指缩放。
Q:支持哪些地图?
A:目前支持基于 CK3、EU4、HOI4、VIC3、EU5 创建的游戏地图文件。
Q:地图包如何使用?
A:在选图页点击「+ 导入地图包…」选择 .pdxmap,或直接拖入文件;导入后刷新页面不会丢失。
Q:地图包保存在哪里?
A:保存在浏览器的本地存储中,不在 HTML 文件旁边。
Q:换电脑后还在吗?
A:换电脑或清除浏览器数据后需要重新导入;请保留 .pdxmap 原文件。
Q:如何删除或备份已导入的地图?
A:卡片上的「导出」可重新打包成 .pdxmap;「删除」只删除浏览器中保存的那一份。
Q:为什么编辑器和地图要分开下载?
A:以前所有人要下载 35 MB;现在编辑器不到 1 MB,地图按需下载。
Q:有 CK2 吗?
A:CK2 模式目前还在内测,暂不公开,也不提供地图包。
Q:有 EU3 / VIC2 的地图吗?
A:没有。
Q:TNO / KR / PB 的地图可以使用吗?
A:可以。但仓库不提供相关地图包,请自行使用工具打包。
Q:如何涂色?
A:按 E 涂抹、F 填色、R 橡皮,Ctrl+Z / Ctrl+Y 撤销重做;右键点击地块可使用吸管。
Q:如何修改名称?
A:按 N 使用改名工具,点击目标后输入新名称;只影响显示,不修改游戏文件。
Q:可以导出什么?
A:当前窗口、整图 PNG、高清整图、涂色 JSON 和诊断报告。
Q:涂色会自动保存吗?
A:不会。需要保留时点击「文件 ▾ → 导出涂色」,下次用「导入」继续。
Q:设置会保存吗?
A:会,按游戏类型保存在浏览器中;涂色内容仍会在刷新后清空。
Q:可以导出成游戏 mod 吗?
A:暂时不行,只能导出图片和涂色文件。
Q:如何绘制与宗主国同色的附属国?
A:先吸取宗主国的颜色,用改名工具修改标签,关闭地区 / 省份细层,再点击附属国版图涂色。
Q:白屏或底部出现红字怎么办?
A:先看红字第一行:显卡上下文丢失时点击「刷新重试」;无法创建 WebGL2 时开启硬件加速或改用 Chrome、Edge;着色器失败时导出诊断报告。
Q:诊断报告在哪里导出?
A:加载页右下角、红字框内或「文件 ▾ → 导出日志」都能导出;发送时附上报告编号。
Q:第一次打开 VIC3 或 EU5 很慢?
A:VIC3 有四万多个地块,EU5 有两万八千多个,开头几秒在读数据;EU5 原尺寸分块加载,等得更久。
Q:为什么有些国家名称显示为 CHI 这样的代码?
A:游戏中文翻译里没有该译名,只能显示国家代码。
Q:搜索框上方弹出白色下拉框(「保存的信息」)?
A:浏览器自动填充,不是编辑器绘制;新版已关闭,旧记录请在浏览器设置中清除。
Q:涂色出现错误,想重新开始?
A:点击「显示」区最下方「清除全部」可恢复原样;有荒地的图还有「清除荒地」,也可按 Ctrl+Z 撤销。
Q:与 MapChart 相比有什么区别?
A:MapChart 是通用网页地图工具;本工具直接读取游戏数据,地块、名称和归属与游戏一致。
Q:代码开源吗?
A:代码以 MIT 开源,仓库在 Nianjiujiang/pdx-map-editor;地图数据版权归 Paradox。
Q:导出的图片可以商用吗?
A:制作视频或战报一般没问题;商用或二次分发请自行确认素材授权,mod 地图还要看作者要求。
Q:在哪里反馈问题或提出建议?
A:B 站评论区或 GitHub issue 都行;请附上截图、诊断报告和当时的模式 / 层级。
编辑器不包含任何游戏原文件,没有游戏脚本、本地化文件、美术素材或地图贴图。它只包含代码和自己解析出的地图缓存:每个头衔节点的名称、代码、颜色和坐标,以及几张二进制表(像素到省份号、省份归属、邻接关系、质心)。地图上的颜色和名称都是实时绘制的。
地图包中包含的也是同一份缓存,内容完整(名称、颜色、层级、归属关系和地图分块都在),因此编辑器本体可以不附带任何地图。地图包是数据而不是程序,编辑器不会执行包中的任何内容,名称一律作为文本显示;不过地图包可能来自他人,内容是否可用请自行判断。
技术栈:原生 JavaScript 和 WebGL2,无框架、无外部依赖;Python 仅用于生成数据和打包。
想更换地图、切换游戏版本,或自己重新生成一份数据时(需要在本机安装对应游戏),请参阅 docs/构建与开发说明.md。其中包含构建命令、目录结构、自检方法,以及修改代码前需要了解的规则。
中文名称来源:CK3 使用游戏自带的简体中文;EU4 使用汉化模组(extract_eu4_zh.py 会在 workshop 目录中查找,找不到时回退为英文名)。感谢汉化组。
代码以 MIT 协议发布,详见 LICENSE。使用中遇到问题或有新功能建议,欢迎提交 issue,或在 B 站评论区留言。
游戏地图数据的版权归 Paradox Interactive 所有;本项目仅解析你自行安装的游戏并绘制地图,不附带任何游戏文件。


