当前位置: 首页 > news >正文

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

文章目录

  • 1、简介
    • 1.1 blender
    • 1.2 osm地图
  • 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、简介

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 城市和覆盖全球的真实世界地形数据。该插件有两个版本可用:

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

相关文章:

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

文章目录 1、简介1.1 blender1.2 osm地图 2、OpenStreetMap下载方式2.1 Simple2.2 Overpass API2.3 OSM星球2.4 Geofabrik下载2.5 其他方法2.6 BBBike 3、blender-osm插件3.1 简介3.2 操作 结语 1、简介 1.1 blender https://www.blender.org/ Blender 是一款免费的开源 3D …...

数字IC设计\FPGA 职位经典笔试面试整理--语法篇 Verilog System Verilog(部分)

注: 资料都是基于网上一些博客分享和自己学习整理而成的 Verilog 1. 数据类型 Verilog一共有19种数据类型 基础四种数据类型:reg型,wire型,integer型,parameter型 reg型   reg类型是寄存器数据类型的关键字。寄存…...

【EtherCAT】CiA402简介

目录 1、CiA402是CANopen协议的子协议 2、CiA402是 用于驱动和运动控制的CANopen设备配置文件 3、 CiA402主要由三部分组成 4、CiA介绍 4.1、操作模式 4.2、对象字典 5、一般对象字定义 6、详细对象字定义 7、Profile position mode 8、Homing mode 9、 Position co…...

嵌入式Linux:模块化编程

目录 内核模块 模块特点 最简单的模块 内核模块的程序结构 模块加载函数 模块卸载函数 模块参数 导出符号 作者简介 内核模块 linux内核整体结构非常庞大,其包含的组件也非常多。 怎么把需要的部分包含在内核中呢? 一种办法是把所有的需要的功能都编译到内核中。…...

【两方演化博弈代码复现】:双方演化博弈的原理、概率博弈仿真、相位图、单个参数灵敏度演化

目录-基于MatLab2016b实现 一、演化博弈的原理1. 基本概念2. 参与者的策略3.演化过程 二、MATLAB 代码解读(博弈参与主体(双方)策略选择的动态演化讨程)三、MATLAB 代码解读(博弈主体随着时间策略选择的动态演化讨程&a…...

Selenium打开浏览器后闪退问题解决

笔者这两天在做一个自动化方案,用来优化数据统计。其中一部分数据需要通过云上堡垒机跳转访问,而这个堡垒机在笔者日常使用的火狐浏览器上运行不是很正常(表现在有些复制粘贴按钮显示不太灵敏)。 但在Edge浏览器上基本正常&#…...

【图论】最短路应用

1135. 新年好 题目 提交记录 讨论 题解 视频讲解 MarkDown视图Copy 重庆城里有 nn 个车站,mm 条 双向 公路连接其中的某些车站。 每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的…...

Spring Boot实战:使用策略模式优化商品推荐系统

在现代电子商务平台中,个性化的商品推荐系统是提升用户体验和增加销售额的关键。本文将通过一个Spring Boot实战项目,展示如何利用Java的设计模式——策略模式,来优化商品推荐系统。同时,我们将探讨Spring Boot中的一个重要特性&a…...

Navicat导入Sql文件至Mysql数据库,事务失效

Mysql 版本:8.0.39 Navicat 版本:17.x、16.x 结论: Navicat 导入sql文件,事务不会生效,无论怎么设置 mysql.exe 导入sql文件,事务生效 测试 准备一张表 name约束不能为空,用于测试事务失败…...

篮球运动场景物体检测系统源码分享

篮球运动场景物体检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comp…...

Docker实操:安装MySQL5.7详解(保姆级教程)

介绍 Docker 中文网址: https://www.dockerdocs.cn Docker Hub官方网址:https://hub.docker.com Docker Hub中MySQL介绍:https://hub.docker.com/_/mysql ​ 切换到“Tags”页面,复制指定的MySQL版本拉取命令,例如 &#xff1a…...

git reflog

git reflog 是一个非常有用的命令,可以让你查看和回滚到 Git 仓库中的任何之前的状态。reflog 记录了你在 Git 仓库中的所有 HEAD 移动历史。下面是使用 reflog 回滚到之前状态的步骤: 1. 查看 Reflog 首先,你需要查看 reflog 记录&#xf…...

使用 Vue 3 和 TypeScript 实现带打字效果的仿 AI 分析展示组件

在这篇博客中,我将分享如何用 Vue 3 和 TypeScript 实现一个带打字效果的 AI 分析展示组件。该组件具有如下功能: 动态打字效果:模拟打字机逐步显示内容。自动滚动:内容超出容器高度时自动滚动到最新位置。 1. 组件实现需求 我…...

数据清洗-缺失值填充-K-NN算法(K-Nearest Neighbors, K-NN算法)

目录 一、安装所需的python包二、采用K-NN算法进行缺失值填充2.1代码(完整代码关注底部微信公众号获取)2.2以某个缺失值数据进行实战2.2.1代码运行过程截屏:2.2.2填充后的数据截屏: 三、K 近邻算法 (K-Nearest Neighbors, KNN) 介…...

爬虫----webpack

目录 一. 什么是webpack 出现的原因:同名函数 概念: 特征:大量缩进 webpack的格式 简单的webpack格式: 详细的webpack格式: 几个参数的运用 1. webpack数组形式 2. webpack对象格式 3.多个js文件打包 打印要扣的代码 …...

Spring Mybatis PageHelper分页插件 总结

1.简介 使用分页插件可以帮助我们自动分页&#xff0c;不用手动在写sql的分页逻辑。 2.配置步骤 在pom.xml中添加依赖 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.11<…...

9、等保测评介绍

数据来源&#xff1a;9.等保测评介绍_哔哩哔哩_bilibili 信息系统等级测评 信息系统等级测评是测评机构依据国家信息安全等级保护制度的规定&#xff0c;按照相关管理规范和技术标准&#xff0c;对未涉及国家秘密的信息系统的安全等级保护状况进行检测评估的活动。 等级测评…...

解决Gson将长数字( json字符串)转换为科学记数法格式

Gson&#xff08;又称Google Gson&#xff09;是Google公司发布的一个开放源代码的Java库&#xff0c;主要用途为序列化Java对象为JSON字符串&#xff0c;或反序列化JSON字符串成Java对象。 依赖 Gradle: dependencies {implementation com.google.code.gson:gson:2.11.0 }…...

php环境搭建教程

PHP环境搭建教程 在构建和开发PHP应用程序时&#xff0c;搭建一个稳定、高效的PHP环境是基础且关键的一步。本教程将详细介绍如何在不同操作系统&#xff08;Windows和Linux&#xff09;上搭建PHP环境&#xff0c;包括Apache服务器的安装与配置、PHP的安装与配置、MySQL的安装…...

测试ASP.NET Core的WebApi项目调用WebService

虚拟机中部署的匿名访问的WebService&#xff0c;支持简单的加减乘除操作。本文记录在WebApi中调用该WebService的方式。   VS2022创建WebApi项目&#xff0c;然后在解决方案资源管理器的Connected Services节点点右键&#xff0c;选择管理连接的服务菜单。 点击下图圈红处…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...