# Kartografo 架空地图编辑器 **Repository Path**: ekmomo/kartografo ## Basic Information - **Project Name**: Kartografo 架空地图编辑器 - **Description**: 架空世界地图编辑器。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-19 - **Last Updated**: 2026-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kartografo - 架空地图编辑器 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) Kartografo 是一个专为小说/游戏创作者设计的地图编辑器,帮助作者可视化构建架空世界中的场景、地点和它们之间的关系。 ## 快速使用 - 在[发行版](https://gitee.com/ekmomo/kartografo/releases/)页面下载最新的Kartografo.zip文件即可。 ## 功能特性 ### 地图编辑 - **房间/地点管理**:创建、编辑和删除场景节点 - **连接关系**:建立地点之间的关联,支持双向和单向连接 - **多种形状**:支持椭圆、矩形等多种房间形状 - **网格吸附**:自动对齐到网格,保持布局整洁 ### 可视化 - **无限画布**:自由缩放和平移的大画布 - **迷你地图**:快速定位和导航整个地图 - **自定义样式**:可自定义颜色、标签和连接样式 - **深色主题**:护眼的深色界面设计 ### 数据管理 - **项目保存/加载**:JSON 格式导出和导入 - **PNG 导出**:将地图导出为图片 - **本地存储**:自动保存用户偏好设置 - **撤销/重做**:完整的操作历史管理 ### 快捷键支持 | 快捷键 | 功能 | |--------|------| | `Ctrl + N` | 新建项目 | | `Ctrl + O` | 加载项目 | | `Ctrl + S` | 保存项目 | | `Ctrl + E` | 导出 PNG | | `Ctrl + Z` | 撤销 | | `Ctrl + Y` / `Ctrl + Shift + Z` | 重做 | | `V` | 选择模式 | | `C` | 连线模式 | | `H` | 拖动模式 | | `R` | 新建房间 | | `Delete` / `Backspace` | 删除选中项 | | `Escape` | 取消选择 | | `+` / `=` | 放大 | | `-` | 缩小 | | `0` | 适应窗口 | | `M` | 切换小窗 | | `G` | 切换网格 | | `D` | 切换地图层 | | `?` / `/` | 显示帮助 | | `鼠标中键` / `Shift + 右键` | 平移画布 | ## 快速开始 ### 在线使用 直接打开 `index.html` 文件即可在浏览器中使用,无需安装任何依赖。 ### 本地开发 ```bash # 克隆仓库 git clone https://gitee.com/ekmomo/kartografo.git # 进入项目目录 cd kartografo # 启动本地服务器(推荐使用 vite) ``` ## 项目结构 ``` kartografo/ ├── index.html # 主页面 ├── css/ │ └── style.css # 样式文件 ├── js/ │ ├── main.js # 入口文件 │ ├── app.js # 应用主控制器 │ ├── canvas.js # 画布管理 │ ├── room.js # 房间/地点管理 │ ├── connection.js # 连接关系管理 │ ├── tools.js # 工具管理 │ ├── history.js # 撤销/重做管理 │ ├── export.js # 导出功能 │ ├── settings.js # 设置管理 │ ├── minimap.js # 迷你地图 │ ├── properties.js # 属性面板 │ └── keyboard.js # 键盘快捷键 ├── assets/ # 图标资源 └── README.md ``` ## 技术栈 - **纯原生 JavaScript (ES6+)** - 无框架依赖 - **HTML5 Canvas** - 高性能 2D 渲染 - **CSS3** - 现代化样式 - **LocalStorage** - 本地数据持久化 ## 使用指南 ### 创建地图 1. 点击工具栏的"新建房间"按钮或按 `R` 键创建地点 2. 拖动房间到合适位置 3. 切换到连线模式(`C` 键),点击并拖动连接两个房间 4. 双击连接可设置连接属性(方向、标签等) ### 编辑属性 - 选中房间或连接后,右侧面板会显示可编辑的属性 - 可以修改名称、颜色、形状等 ### 导出作品 - 保存项目:导出为 `.kartografo.json` 文件,方便下次继续编辑 - 导出图片:生成 PNG 格式的地图图片,可用于文档或分享 ## 贡献 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建你的特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交你的修改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开一个 Pull Request ## 许可证 本项目基于 [MIT](LICENSE) 许可证开源。 ## 致谢 感谢所有为这个项目提供建议和反馈的用户。 --- **Kartografo** - 让小说世界的构建更加直观和有趣!