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


http://www.mrgr.cn/news/32980.html

相关文章:

  • 结构体对齐、函数传参、库移植
  • Spring:统一结果私有属性造成的前端无法访问异常报错问题
  • 博客管理系统可行性分析报告
  • Elionix 电子束曝光系统
  • 分析redis实现分布式锁的思路
  • 【亿美软通-注册/登录安全分析报告】
  • 掌握 JavaScript 中的函数表达式
  • 安装黑群晖系统,并使用NAS公网助手访问教程(好文)
  • Android通知服务及相关概念
  • Flutter 获取手机连接的Wifi信息
  • Ribbon布局和尺寸调整
  • 详解lsof
  • NXP官方或正点原子mfgtool下载系统报错initialize the library falied error code:29
  • 【读书笔记-《网络是怎样连接的》- 0】全书整体结构
  • 直通滤波-PassThrough Filter-原理-代码实现
  • 数据结构——二叉搜索树
  • grbl移植日志第二天移植串口数据接收
  • 图像锐化的算法总结
  • LeetCode --- 139双周赛
  • python:给1个整数,你怎么判断是否等于2的幂次方?