调研报告之城市三维模型
前言
进行三维开发,首先要获取城市的建筑物模型,没有纹理的模型,俗称就是白膜。
在bilibili的一个视频上,我知道了三种创建城市建筑物模型的方式,第一种就是使用skp2osm这么一个插件,从osm数据导入到sketchup。但是经过我的测试,按原样的方法我下载了杭州的某一个地方的osm数据,将osm数据导入到sketchup中,只有平面的图形,而没有建筑物的高度信息,不知道视频中是如何做出来的。其他的两种方法,都是要收费的,199刀,估计老板也不愿意出钱买。后来发现了一个osm2world的软件,好像还可以,生成了需要的三维模型。
1.一键生成国内城市建筑模型—百度地图数据获取 (这个不知道能不能成功,但是实际上我还没试,这里的百度网盘也已经失效了)
2.一键制作任意城市建筑场地模型-gis小技巧
3.MapGis可视化—-城市建筑物高度数据获取方法 (城市中建筑物的高度信息的获取)
4.osm2world
5.ArcGIS三维入门(2-19)城市建筑物数据的获取 (建筑物数据获取的方法,包括建筑物高度的获取包括影像,雷达以及建筑物专题数据库,和参考文章3其实是一样的)
6.如何利用ArcGIS提取天地图建筑轮廓 (使用ArcMap提取建筑物的轮廓,原始的文章我忘记在哪里获取到了,但是实际上呢,大体的思路还是一样的。这里使用的是水经注地图下载器,下载了地图,但是其他的地方好像没有需要下载地图。)
7.如何利用ArcGIS提取天地图建筑轮廓 (这是上一篇文章的知乎版)
8.还在用GH爬取OSM?对不起!我用GIS分分钟就可以做出来城市整体模型! 这个感觉很吊的样子
1.skp2osm
这个工具主要用来将osm数据导入到sketchup软件中,可以作为底图,进行模型位置的校正。
(1) 下载
(2) 解压后,将OSM文件夹和osm.rb文件,复制到C:\Users[用户名]\AppData\Roaming\SketchUp\SketchUp 2020\SketchUp\Plugins文件夹下
(3) 打开Sketchup软件,选择File->Import,可以选择导入osm数据
1.skp2osm (维基百科)
2.osm2world
这个工具主要用来将osm数据生成obj格式的模型,在该工具中打开osm数据,如果原有的osm数据建筑物有高度信息,则会生成相应高度的建筑物模型,如果没有高度信息,也会自动随机生成同等高度的建筑物模型,虽然不能很好的满足需求,但也是可以简单的查看一个三维建筑物模型了。
(1) 下载
(2) 解压后,运行解压目录下的osm2world-windows.bat文件。
(3) 选择需要进行三维处理的osm数据
(4) 生成三维模型
这个软件,还可以将生成的3d模型导出三维obj格式。
3.生成3dtiles
经过尝试和修改,在生成免费的城市三维模型中,主要用到了两个建模软件一个是sketchup,一个是3dmax。一个自动模型生成工具osm2world,还有一个就是sketchup的插件skp2osm。当然,使用免费的工具,就会有诸多的限制
(1) 下载osm数据
(2) 适用osm2wrold生成三维模型,并导出obj格式
(3) 在3dmax中导入上一步的obj,需要作为单个网格导入,并选择需要导入的建筑物模型,把不需要导入的部分忽略
(4) 将处理后的建筑模型,重新导出obj
(5) 适用CesiumLab软件,将导出的处理后的建筑物模型obj,进行切片
(6) 适用Cesium.js加载最后的3d tiles格式的文件
最终的效果如下:
1.如何从OpenStreetMap上获取矢量地图数据并导入到奥维
2.OSM OpenStreetMap 获取城市路网数据及转为ESRI shp数据的方法
3.批量下载osm的分区域的osm文件
4.geobuilding
在研究 segment-anything 的时候,无意间找到了一个大神写的工具-——geobuilding,这个工具不开源,有很多的方法获取城市白膜数据,显得非常的专业。
5.其他方法
1.Cesium项目实战(3)-城市建筑三维白膜数据的制作与效果展示 (三维城市的数据获取,处理步骤以及其他的一些流程,通过shp文件,借助于CesiumLab软件生成3dTile切片。还包括了一些设置建筑物的颜色,根据高度设置不同的建筑物颜色等)
2.如何快速获取高清3D城市模型 (这里讲了如何获取高德地图的三维数据,但是导出的数据是一张图,而不是三维模型)
4.一键制作任意城市建筑场地模型-gis小技巧 (这是个系列知乎文章,还是蛮不错的,但是关注公众号之后,回复的内容,百度网盘也已经失效了)
5.Blender 地形-影像-城市白膜生成 借助于Blender GIS,QGIS OSM等插件,提取OSM中的城市白膜信息。
6.cesium osm building 白模下载
6.数据加载
问题
1.3dmax导入obj出现无效的顶点索引问题
使用3dmax打开osm2world导出的obj,会出现“无效的顶点索”这个错误。
解决方法,就是再导入obj时设置“作为单个网格导入”
1.max2010导入obj时提示无效的顶点索引 (回答的很好)
2.CesiumLab导出模型为空白
在适用3dmax加载模型后,然后导出obj之后,适用CesiumLab进行模型的切片,但是最后输出文件夹中总是空白的,让我很恼火,也浪费了很长的时间在上面,在群里问他们也出现了同样的问题,但是没有人帮助解决。
最后的解决方案其实是因为obj或者是fbx格式的文件,不能带中文。如果待处理的文件中包含中文,最后输出文件夹中就是一个空白的内容。