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

server/2024/9/23 10:58:10/

文章目录

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

1、简介

blender_3">1.1 blender

https://www.blender.org/

Blender 是一款免费的开源 3D 创作套件,支持整个 3D 管道。使用它强大的工具,你可以轻松创建惊人的 2D/3D 内容。
在这里插入图片描述

osm_8">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数据集。
在这里插入图片描述
在这里插入图片描述

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


http://www.ppmy.cn/server/120015.html

相关文章

反游戏学(Reludology):概念、历史、现状与展望?(豆包AI版)

李升伟 以下是关于“反游戏学(Reludology):概念、历史、现状与展望”的综述: 一、概念 反游戏学(Reludology)是一个相对较新且不太常见的概念,目前尚未有统一明确的定义。一般来说&#xf…

Golang | Leetcode Golang题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; func reconstructQueue(people [][]int) (ans [][]int) {sort.Slice(people, func(i, j int) bool {a, b : people[i], people[j]return a[0] > b[0] || a[0] b[0] && a[1] < b[1]})for _, person : range people {idx : pe…

前端web端项目运行的时候没有ip访问地址

我们发现 没有netWork 的地址 导致 团队内其他同学无法打开我们的地址 进行访问 在page.json 中的运行 指令中 添加 --host 记得加上空格 这样我们就可以看到这个地址了 团队其他同学 就可以访问我们这个地址了

java使用ByteBuffer进行多文件合并和拆分

1.背景 因为验证证书的需要&#xff0c;需要把证书文件和公钥给到客户&#xff0c;考虑到多个文件交互的不便性&#xff0c;所以决定将2个文件合并成一个文件交互给客户。刚开始采用字符串拼接2个文件内容&#xff0c;但是由于是加密文件&#xff0c;采用字符串形式合并后&…

828华为云征文 | 华为云X实例的镜像管理详解

前言 随着云计算的不断普及&#xff0c;云服务器成为企业和开发者日常工作中的重要工具。为了提升工作效率和降低运维成本&#xff0c;云服务器镜像的管理尤为重要。镜像作为服务器或磁盘的模板&#xff0c;预装了操作系统、软件及配置&#xff0c;是快速部署和迁移业务的重要…

迭代器和生成器的学习笔记

迭代器 Python 迭代器是一种对象&#xff0c;它实现了迭代协议&#xff0c;包括 __iter__() 和 __next__() 方法。迭代器可以让你在数据集中逐个访问元素&#xff0c;而无需关心数据结构的底层实现。与列表或其他集合相比&#xff0c;迭代器可以节省内存&#xff0c;因…

【Android 13源码分析】WindowContainer窗口层级-2-构建流程

在安卓源码的设计中&#xff0c;将将屏幕分为了37层&#xff0c;不同的窗口将在不同的层级中显示。 对这一块的概念以及相关源码做了详细分析&#xff0c;整理出以下几篇。 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树 【Android 13源码分析】WindowCon…

分布式事务学习笔记(四)微服务实现Stata AT模式、Stata Saga模式介绍

文章目录 前言4 Seata AT 模式4.1 实现原理4.2 脏写问题4.3 微服务实现AT模式4.3.1 新建数据库表4.3.2 修改配置文件4.3.3 重启服务并测试 5 Seata Saga 模式 前言 分布式事务学习笔记(一)分布式事务问题、CAP定理、BASE理论、Seata 分布式事务学习笔记(二)Seata架构、TC服务器…