【小沐学GIS】blender导入OpenStreetMap城市建筑(blender-osm、blosm)

文章目录

  • 1、简介
    • [1.1 blender](#1.1 blender)
    • [1.2 osm地图](#1.2 osm地图)
  • 2、OpenStreetMap下载方式
    • [2.1 Simple](#2.1 Simple)
    • [2.2 Overpass API](#2.2 Overpass API)
    • [2.3 OSM星球](#2.3 OSM星球)
    • [2.4 Geofabrik下载](#2.4 Geofabrik下载)
    • [2.5 其他方法](#2.5 其他方法)
    • [2.6 BBBike](#2.6 BBBike)
  • 3、blender-osm插件
    • [3.1 简介](#3.1 简介)
    • [3.2 操作](#3.2 操作)
  • 结语

1、简介

1.1 blender

https://www.blender.org/

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

https://extract.bbbike.org/

BBBike也是前述Planet OSM中提到的第三方网站之一,其也是一个定期更新的OSM数据集。

3、blender-osm插件

https://github.com/vvoovv/blosm

Blender 的 Blosm 插件(以前称为 Blender-OSM)提供几次点击下载和导入 OpenStreetMap、Google 3D 城市和覆盖全球的真实世界地形数据。该插件有两个版本可用:

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进行编辑。

bash 复制代码
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???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

相关推荐
明月清风徐徐11 分钟前
Scrapy爬取豆瓣电影Top250排行榜
python·selenium·scrapy
theLuckyLong12 分钟前
SpringBoot后端解决跨域问题
spring boot·后端·python
Yongqiang Cheng15 分钟前
Python operator.itemgetter(item) and operator.itemgetter(*items)
python·operator·itemgetter
MavenTalk18 分钟前
Move开发语言在区块链的开发与应用
开发语言·python·rust·区块链·solidity·move
FksLiao30 分钟前
Superset安装
python
L Jiawen37 分钟前
【Python · PyTorch】卷积神经网络(基础概念)
pytorch·python·cnn
goomind42 分钟前
深度学习模型评价指标介绍
人工智能·python·深度学习·计算机视觉
->yjy1 小时前
wordcloud库基本介绍
python
2401_840192271 小时前
python基础大杂烩
linux·开发语言·python
abments1 小时前
JavaScript逆向爬虫教程-------基础篇之常用的编码与加密介绍(python和js实现)
javascript·爬虫·python