news 2026/8/24 11:21:23

Arnis 三步把真实城市搬进《我的世界》:免费开源的地理地图生成工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Arnis 三步把真实城市搬进《我的世界》:免费开源的地理地图生成工具

Arnis 三步把真实城市搬进《我的世界》:免费开源的地理地图生成工具

【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis

Arnis 是一款免费的开源工具,专门做一件事:用真实地理数据生成《我的世界》地图。你给它一个经纬度范围,它会从 OpenStreetMap 拉取街景要素、再结合高程数据计算地形,直接产出可进游戏的存档——支持 Java 版(1.17+)和基岩版,图形界面与命令行都能跑,整个流程不花一分钱。

一条坐标的旅程

在讲操作之前,值得花两分钟搞清楚"经纬度"是怎么变成方块的,这样出问题时你知道该往哪里查。

Arnis 的处理链路可以概括为四步:

  1. 取数:按你框选的范围向 OpenStreetMap 请求道路、建筑、水系、绿地等要素;
  2. 投影:经纬度是球面上的坐标,必须先展开成平面。这一步用的是 Web 墨卡托投影,代码在 [src/projection/web_mercator.rs];
  3. 缩放:把平面坐标换算成方块单位。默认 1 米对应 1 方块,也就是 1:1 还原;
  4. 落块:每个方块位置再叠加高程数据算出地面高度,最后逐格写入存档。

所有跨坐标系的具体运算集中在 [src/coordinate_system/transformation.rs],想深入细节可以从这里入手。

三步生成你的第一张地图

第一步:框选区域。打开程序就是一张世界地图,放大到你想要的地方,用矩形工具拖出一个边界框——市中心一个街区、整座城、一条河谷都可以。

第二步:配置参数。界面上能调的主要是几项:

  • 世界缩放(想让 5 平方公里塞进更小的地图就调低比例)
  • 出生点(想从哪里开始游戏)
  • 建筑内部生成(要不要给大楼做出房间结构)
  • 生成模式,一共三种:geo-terrain(默认,真实地形 + OSM 要素)、geo-only(平面地 + 要素)、terrain-only(只生成地形,跳过一切 OSM 数据)

第三步:开始生成。点 Start Generation,等进度条走完。产出就是一个标准 Minecraft 存档,拖进存档目录直接开玩。

功能亮点:它还原了什么

  • 真实高程地形:山是山、谷是谷,河流和湖泊带深度,不是平地贴图。高程数据的获取与后处理在 [src/elevation/mod.rs]。
  • 建筑还原:读 OSM 里的建筑标签生成体量,外墙按用途做出不同立面,门窗、广告牌、公交和地铁图标都会贴上对应位置,细节逻辑集中在 [src/element_processing/buildings.rs]。
  • 区域化植被:项目内置了非洲、东亚、欧洲、南美、北美等地分的树种包(见 assets/tree-packs/),柏林长白桦、加州长橡树,不会出现"热带椰子树长在德国"的穿帮。
  • 特色结构:车辆、船只、起重机、灯塔、风车、游乐场等现成模型按需布置,加载规则在 [src/structures/mod.rs]。
  • 3D 地标模型:对 Wikidata 上有 3D 模型的名著建筑(例如慕尼黑奥林匹克体育场),会拉取模型体素化后放进地图,索引文件在 assets/wikidata_3d_models.json。
  • 双端兼容:Java 版和基岩版都能导出,还能顺带产出 Luanti(原 Minetest)格式,对应 src/world_editor/。

生成出来是什么样

一句话描述:一座按原样摆进方块的城。楼高大致贴合原建筑,路网走向和街巷密度都来自真实数据,水系沿真实河道铺开,植被跟着气候带走。细节多不多取决于你选的区域大小——区域越小,单位面积里能生成的细节越足。

常见坑一次说清

问:选很大的区域会卡死吗?

Arnis 用多线程分块并行生成,整体吞吐很快,但超大区域仍然吃内存。建议第一次先从 1~2 平方公里跑通全流程,再逐步放大;如果只要地形不要城市要素,切到terrain-only模式,跳过 OSM 请求,速度和内存压力都最小。

问:需要联网吗?

要。运行时会实时请求 OSM 和高程瓦片,所以离线环境跑不起来。好消息是下载过的高程瓦片会留在本地缓存,同一片区域二次生成明显更快。

问:生成完能直接进游戏吗?

能。Java 版丢进.minecraft/saves/,基岩版也是完整存档结构,不需要任何转换器。注意 Java 版要求 1.17 及以上。

进阶:一行命令批量出图

图形界面适合手动操作,命令行则适合批量和自动化。仓库地址:https://gitcode.com/GitHub_Trending/ar/arnis,克隆后用一条命令生成:

cargo run --release --no-default-features -- --output-dir="你的存档路径" --bbox="min_lat,min_lng,max_lat,max_lng"

--bbox是四个角点坐标,--mode可以指定三种生成模式(默认geo-terrain),完整参数说明看 [src/args.rs]。配合脚本可以一次性导出多张地图,或者挂进服务器流水线里定期更新。

接下来可以玩什么

最短路径:挑一段有江有山的城区跑一遍geo-terrain,体会 1:1 还原;再用terrain-only拿一张"纯地形沙盘"做基地选址;最后把家乡、校园或者你关心的那片地方也搬进去。从一张地图到一套流程,Arnis 的天花板基本只由你选的区域决定。

【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 11:21:15

5 步跑通 Deep-Live-Cam:从空白环境到实时换脸的完整路线图

5 步跑通 Deep-Live-Cam:从空白环境到实时换脸的完整路线图 【免费下载链接】Deep-Live-Cam real time face swap and one-click video deepfake with only a single image 项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam Deep-Live-Cam 是…

作者头像 李华
网站建设 2026/8/24 11:21:13

C++模板核心解析:类模板与模板类的本质区别与应用实践

1. 项目概述:从“模板”的困惑说起 如果你在C的学习或面试路上,被“类模板”和“模板类”、“函数模板”和“模板函数”这两组词绕晕过,那你绝对不是一个人。这几乎是每个C开发者都会遇到的经典困惑点,看似是文字游戏,…

作者头像 李华
网站建设 2026/8/24 11:20:25

mpv 图片轮播:一条命令把文件夹挂上展厅墙

mpv 图片轮播:一条命令把文件夹挂上展厅墙 【免费下载链接】mpv 🎥 Command line media player 项目地址: https://gitcode.com/GitHub_Trending/mp/mpv mpv 是个命令行媒体播放器,这里拿它做图片轮播:整文件夹循环、自定义…

作者头像 李华
网站建设 2026/8/24 11:19:41

平台视觉API接入实战:从环境配置到批量处理全流程指南

1. 先搞清楚“大肥鲸睁眼”到底意味着什么 看到“大肥鲸终于睁眼了”这个标题,第一反应可能有点懵。这其实是一个很形象的比喻,通常用来形容一个大型的、备受期待的技术项目或平台,经过长时间的准备和“沉睡”后,终于上线了其核心…

作者头像 李华
网站建设 2026/8/24 11:17:31

C++万能引用与完美转发:从模板类型推断到高效泛型编程

1. 项目概述&#xff1a;从“差不多能用”到“精准高效”的泛型进阶 如果你写过一些C模板代码&#xff0c;可能有过这样的体验&#xff1a;写个 template <typename T> 的函数&#xff0c;传个 int 、 string 进去都能跑&#xff0c;感觉挺“万能”。但当你试图写一…

作者头像 李华