
Arnis 教程4 步用 OpenStreetMap 数据生成 1:1 Minecraft 世界【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis想把家乡原样搬进 Minecraft却卡在了第一步现实中的街道、山丘和楼房到底怎么变成游戏里的方块Arnis 就是为这件事做的工具——它从 OpenStreetMap 读取真实的地理数据再叠加真实高程直接生成一个可以玩的 Minecraft 世界。本文用 10 分钟带你搞懂它是什么、怎么跑起来、背后数据是怎么流动的。Arnis 的定位把真实地理数据变成可玩的 Minecraft 地图一句话Arnis 把 OpenStreetMap一个由志愿者维护的全球地图数据库类似地图界的维基百科里的道路、建筑、水体加上真实地形高度转换成 Minecraft 世界文件让比例、位置都和现实对得上。它是一个免费、开源Apache 2.0 协议的 Rust 项目跨 Windows、macOS 和 Linux提供图形界面和命令行两种方式。️ 能力地图输入什么、输出什么、支持哪些平台维度支持内容数据输入OpenStreetMap道路/建筑/水体等、真实高程数据多来源自动选择、地表覆盖数据、Overture Maps补充 OSM 中缺失的建筑轮廓输出格式Minecraft Java 版1.17世界文件夹、基岩版.mcworld文件、LuantiMinetestmap.sqlite运行平台Windows / macOS / LinuxGUI图形界面与 CLI命令行双模式生成模式geo-terrain默认真实地形 建筑道路、geo-only平地 建筑道路、terrain-only仅地形不查地图数据可调细节世界比例默认 1 方块 1 米、建筑内部结构、树木尺寸、3D 装饰车辆、桥梁等、出生点位置 快速上手4 步生成你的第一张地图第 1 步拿到工具。两种方式任选从官方 Release 页面下载对应系统的安装包直接运行或者自己编译——仓库是 Rust 写的装好 Rust 后git clone https://gitcode.com/GitHub_Trending/ar/arnis cd arnis cargo run --release✅ 判据GUI 窗口成功打开窗口默认 1000×650或命令行能打印出帮助信息就算成功。第 2 步框选区域。在 GUI 地图上用矩形工具拖出想生成的范围命令行则用--bbox最小纬度,最小经度,最大纬度,最大经度。第一次尝试建议选 2–5 平方公里比如一个街区加上周边太大既慢又占内存。✅ 判据框出来的范围在地图上能一眼认出这就是我要的那片地方。第 3 步选参数并生成。保持默认模式真实地形 建筑道路、默认比例 1.0即 1 方块对应 1 米真实距离即可。想生成基岩版世界加--bedrock。GUI 里点开始生成命令行示例cargo run --release --no-default-features -- \ --output-dir.minecraft/saves/myhometown \ --bbox48.13,11.55,48.16,11.58✅ 判据进度窗口开始滚动能看到获取 OpenStreetMap 数据下载高程数据等阶段在推进。第 4 步进世界验收。Java 版世界会直接落在你指定的saves目录里打开 Minecraft 就能看到基岩版会产出一个.mcworld文件导入即可。✅ 判据世界出现在游戏列表里出生点落在你指定的位置走出几步能认出家乡的街道走向——生成就算成功。⚙️ 幕后管线你看到的世界是怎么一步步算出来的整个过程是一条单向数据流六个环节依次进行源码里各是独立模块方便单独改动取数并行进行同时向 Overpass 接口查询 OpenStreetMap 要素、向高程服务拉取地形高度、下载地表覆盖数据如果 OSM 里建筑不全再用 Overture Maps 卫星识别的建筑轮廓补上。高程源按地区自动选择实现见 src/elevation/providers/。坐标换算把经纬度映射到方块坐标。核心是 src/coordinate_system/transformation.rs 里的转换器逻辑可以这样理解pub struct CoordTransformer { len_lat: f64, // 区域纬度跨度 len_lng: f64, // 区域经度跨度 scale_factor_x: f64, // 东西方向多少米换算成方块 scale_factor_z: f64, // 南北方向多少米换算成方块 min_lat: f64, min_lng: f64, mode: ProjectionMode, // local每次从 0,0 开始或 web_mercator多区域拼接 }默认 local 模式下每次生成的世界都从 Minecraft 的 (0,0) 开始如果你打算把多个区域拼成一张大图可以切换到 Web Mercator 投影让经纬度和方块坐标保持全局一致。 3.堆地形高程数据重采样成和方块网格对齐的高度表先剔除异常尖点再做平滑然后按方块高度 真实海拔 × 比例堆出山体和水底见 src/elevation/postprocess.rs。 4.放要素建筑按 OSM 的轮廓生成带外墙的体块可选生成内部结构道路、铁轨按路线铺设树木从内置的 树形结构库 里按地域挑选车辆、桥梁等 3D 装饰取自 assets/structures/。全部逻辑在 src/element_processing/。 5.贴生物群系根据地表覆盖类型和当地柯本气候一套按温度降水划分气候带的世界标准项目自带assets/climate/koppen_0p1.bin数据给每个区块打上 Java 1.18 的生物群系标签让沙漠地区真的出沙子、寒带真的下雪见 src/biome.rs。 6.写出世界按目标平台打包成 Java 的 anvil 世界文件夹、基岩版.mcworld压缩包或 Luanti 的map.sqlite见 src/world_editor/。 落地场景三类人各自怎么用地理老师 / 科普活动组织者把学校周边 3 平方公里按默认参数生成一张 1:1 地图课上带着学生讨论哪条河从哪座山流下来洪水会先淹哪条街。想弱化建筑、突出地形时直接用--mode terrain-only连 OSM 查询都跳过速度最快。Minecraft 服务器管理员 / 地图作者把家乡做成服务器的主地图。整座城市放不下把--scale调到 0.51 方块 2 米范围直接减半想跨区拼一张连续大地图用--projection web_mercator多次生成的区域坐标能自动对齐。开发者 / 数据工程师Arnis 的 CLI 可以脱离 GUI 独立工作。用--file直接读一份本地 OSM 数据文件不再联网查地图用--save-json-file把拉取的数据存下来做后续分析--debug打开调试输出适合排查某个要素为什么没生成。参数全表见 src/args.rs。⚠️ 避坑速查新手最常踩的 4 个坑坑 1生成半天没结束或内存爆掉。原因世界大小和方块数量直接挂钩高程网格上限约 16384×16384 格超大区域时内存峰值可达数 GB。 解法先把区域缩到 2–5 km² 跑通全流程只关心地形时用--mode terrain-only跳过 OSM 查询确认是在生成而不是卡死可以看终端里的进度日志。坑 2某片区域建筑明显缺失。原因不是工具 bug是 OpenStreetMap 那个地方的数据本来就稀——志愿者没标上去。 解法确认默认的 Overture 补充建筑功能开着它会自动填 OSM 缺的建筑轮廓偶尔会引入卫星误检属正常实在缺得厉害就把它当成那个年份的地图长什么样。坑 3地形和实际地方对不上或有奇怪的尖刺。原因高程数据有分辨率上限小范围起伏可能被平滑掉个别源数据有异常点。 解法程序会自动做离群点过滤和平滑src/elevation/postprocess.rs如果仍有明显问题换个区域或缩小范围重新生成并核对--ground_level世界基准地面高度默认 -62是否被你手动改过。坑 4生成的世界在 Minecraft 里找不到。原因平台和输出路径不匹配——Java 版需要--output-dir指向.minecraft/saves/下的文件夹基岩版不指定--bedrock的话根本不会产.mcworld。 解法生成前确认平台参数--bedrock/ 默认 Java和输出路径Java 版还需 1.17 及以上版本才能正常打开。 资源导航项目说明与用法README.md命令行参数全表含各参数默认值src/args.rs坐标转换引擎src/coordinate_system/高程数据源与后处理src/elevation/建筑、道路、树木等要素处理src/element_processing/生物群系分配逻辑src/biome.rs内置树形结构库按气候分区assets/tree-packs/社区项目维护者运营有官方 Discord 服务器问题反馈和生成成果分享都可以去那里完整技术文档与 FAQ 在项目的 Wiki 中随源码仓库提供。下一步与免责挑一个你闭眼都能画出来的地方——老家楼下的街区就很好——今天就把它生成出来。Arnis 遵循 Apache License 2.0 开源版权 Louis Erbkamm可自由使用与修改它不是 Mojang 或 Microsoft 的官方产品与 Minecraft 官方无关请仅从项目官方渠道下载。【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考