【小沐学GIS】blender导入OpenStreetMap城市建筑(blender-osm、blosm)
Blender 是一款免费的开源 3D 创作套件,支持整个 3D 管道。使用它强大的工具,你可以轻松创建惊人的 2D/3D 内容。blender-osm 从 OpenStreetMap 导入建筑物,而不应用任何纹理。建筑物高度和楼层数用于创建最终场景。对于具有复杂结构的建筑物,还可以将其合成为 3D 部分。- 支持大量屋顶形状。如果提供了 terrain,则会自动将建筑物放置在 terrain 上
文章目录
1、简介
1.1 blender
Blender 是一款免费的开源 3D 创作套件,支持整个 3D 管道。使用它强大的工具,你可以轻松创建惊人的 2D/3D 内容。
1.2 osm地图
https://www.openstreetmap.org/
OpenStreetMap开放街道地图( OSM) 是一个非常详细的地图数据,是一个建构自由内容之网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图,并且让一般的移动设备有方便的导航方案。其OSM数据开源,可以自由下载使用,免费的全球地图数据库。
Openstreetmap是一种开源地图,简称osm。其包含图层主要有高速公路、铁路、水系、水域、建筑、边界、建筑物等图层。
OpenStreetMap 生态总览展示了一个开源地图服务的核心内容。其中绿色+黄色部分就是地图后端服务。
OSM包含图层主要有高速公路、铁路、水系、水域、建筑、边界、建筑物等图层。
OSM文件的基础结构,包括node、way和relation元素,以及它们在地理空间数据中的作用。
2、OpenStreetMap下载方式
OSM数据包含道路与铁路路网、建筑、水体、土地利用、兴趣点、行政区边界等各类数据,同时具有.shp、.pbf、.osm、.csv等多种类型,方便大家不同的使用需求。
OSM主要提供Simple、Overpass API、OSM星球和Geofabrik下载等四种下载方式。
- Simple:直接导出框中数据
- Overpass API:提供按照bbox方法的数据下载
- OSM星球: 提供整个OSM数据下载,但是下载的数据量较大
- Geofabrik下载: 提供各大洲、国家和特定城市数据
- 其他方法
2.1 Simple
首先,进入OSM官网:https://www.openstreetmap.org/。此时可以看到屏幕中均为地图显示区域,需要点击左上角的“Export”按钮打开数据下载窗口。
网站左侧提供矩阵框方法作为最简单的下载方法,进行框选区域的数据下载,此时下载的数据结构是XML格式,而不是矢量数据。该方法不支持非规则区域和过大区域的数据导出。
map.osm内容如下:
2.2 Overpass API
使用Overpass API方法下载数据,数据的选择方式同Simple方法,下载时点击Overpass API下载。Overpass API是OSM数据库的一个镜像,当研究区域较大导致前述“Export”方法不能下载时,可以用这一方法进行下载。
这种方法导出的数据格式为空,即不含有文件后缀。
2.3 OSM星球
https://planet.openstreetmap.org/
下载全球数据,数据量达到几十G,通常情况用不到全球数据,不推荐使用。Planet OSM是一个定期更新的全球OSM数据集。
Planet OSM都是一个全球的、完整的数据集,都需要我们下载后自行裁剪。因为是全球的数据,因此其数据量非常大,由下图可知.xml格式文件就达到了106 GB,.pbf格式文件也有59 GB之大。
2.4 Geofabrik下载
https://download.geofabrik.de/
首页点击Geofabrik下载,跳转后出现的是洲级别的数据集,而且大部分数据集不提供shp格式,在sub region中选择研究区域对应的大洲本文以亚洲为例演示。
Geofabrik Downloads便是前述Planet OSM中提到的第三方网站之一,其也是一个定期更新的OSM数据集。 和Planet OSM相比,其优势在于可以按照国家或地区进行更小范围研究区域数据的下载,而不用下载整个地球的数据了。
2.5 其他方法
https://wiki.openstreetmap.org/wiki/Download
Other Sources是OSM官网提供的数据下载其它方法的合集。
由于Other Sources所对应的方法相对比较多且小众,因此官网也是直接将Other Sources方法整合在Wiki中,大家如果有需要可以自行查阅。
2.6 BBBike
BBBike也是前述Planet OSM中提到的第三方网站之一,其也是一个定期更新的OSM数据集。
3、blender-osm插件
https://github.com/vvoovv/blosm
Blender 的 Blosm 插件(以前称为 Blender-OSM)提供几次点击下载和导入 OpenStreetMap、Google 3D 城市和覆盖全球的真实世界地形数据。该插件有两个版本可用:
- Blosm(高级)
https://prochitecture.gumroad.com/l/blosm - Blosm(基础版,可以免费下载)
https://prochitecture.gumroad.com/l/blender-osm
3.1 简介
基础版本提供:
- blender-osm 从 OpenStreetMap 导入建筑物,而不应用任何纹理。建筑物高度和楼层数用于创建最终场景。对于具有复杂结构的建筑物,还可以将其合成为 3D 部分。- 支持大量屋顶形状。如果提供了 terrain,则会自动将建筑物放置在 terrain 上。
- Blender-OSM 下载并导入分辨率约为 30 米的真实地形数据。
- blender-osm 可以导入 GPX 轨道并将它们投影到地形上。
- 河流、湖泊、森林、植被将作为多边形导入。如果提供了 terrain,则它们将投影到 terrain 上。
- 导入的道路、路径和铁路具有宽度。它们由带有 profile 对象的 Blender 曲线表示。如果提供了 terrain,则道路将投影到 terrain 上。
除了基本版本的功能外,高级版还提供:
- 从 OpenStreetMap 导入建筑物,应用默认材质、可平铺建筑物纹理和 UV 映射
- 默认材质和纹理,用于模拟深夜设置的照明窗口
- 将森林和单棵树作为 3D 对象导入
- 使用自定义可平铺建筑纹理的选项(例如,从 textures.com 开始)
- 投影在地形上的卫星图像和 Web 地图
3.2 操作
导入blender-osm(GitHub - vvoovv/blosm)安装结束后,在openstreetmap地图资源(OpenStreetMap)的基础上,快捷键N打开右侧侧面栏,确定一定范围的四个参数,import直接将一定区域城市三维模型导入blender进行编辑。
Edit → Preferences... → Add-ons
Type osm in the search box to find the addon
Press Remove button
Restart Blender
Edit → Preferences... → Add-ons → Install...
打开插件界面:
结语
如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;
╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;
o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;
(✿◡‿◡)
感谢各位大佬童鞋们的支持!
( ´ ▽´ )ノ ( ´ ▽´)っ!!!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)