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 的处理链路可以概括为四步:
- 取数:按你框选的范围向 OpenStreetMap 请求道路、建筑、水系、绿地等要素;
- 投影:经纬度是球面上的坐标,必须先展开成平面。这一步用的是 Web 墨卡托投影,代码在 [src/projection/web_mercator.rs];
- 缩放:把平面坐标换算成方块单位。默认 1 米对应 1 方块,也就是 1:1 还原;
- 落块:每个方块位置再叠加高程数据算出地面高度,最后逐格写入存档。
所有跨坐标系的具体运算集中在 [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),仅供参考
