写在开始之前:这里也是做了一个智慧城市的课程作业,自己实现了这个模型的构建,当然视频流程b站上面也有参考学习,大家可以自己去翻一下。实现的过程大概就是用supermap处理城市shp矢量文件,然后生成三维模型缓存文件然后再用supermap在unity的包导入unity3d就可以实现。下面是最终效果的展示:
图1 运行主界面
图2 城市模型俯瞰图
图3 武汉城市模型展示
运行的完整过程大家可以看我发布的视频,好的现在步入正题教学。
1、城市建筑矢量数据来源
这里我是从别人的网盘下载的,来源如下:【3D可视化】40秒搭建城市3D建筑物模型Web地图,全网最快,一键保存分享好友,有浏览器就能搞!_哔哩哔哩_bilibili
里面的链接:62个城市建筑物矢量shp数据
链接:https://pan.baidu.com/s/1kquxUttD0n8cALxk7QvkMg 提取码:2021
2、用supermap进行处理
详细的过程可以看上面的视频,也可以参考我下面的操作流程,我的版本是supermap idesktop 11i(2022)
1、新建文件型数据源之后右键导入数据集,选择下载的城市矢量文件然后再进行融合(在数据选项卡里)处理,消除格子线。
2、查看融合之后的属性表,添加height属性
3、更新列数据,根据floor列,乘以3之后为height的数据(每层楼假设为3米)
4、点击三维数据→生成缓存数据→面拉伸生成缓存文件,如下所示
5、生成完成之后,在unity3d里面导入。
3、unity使用supermap提供的插件导入三维模型
构建一个unity3d项目:
这里的插件是官网提供的,我的应该是这个版本,我记得2022的版本不可以用(没有)
记录刚刚下载的位置,然后待会再unity内部导入这个包
导入之后还有个player里面的allow unsafe code要勾选
然后是基本的点击流程:
然后再编辑supermap gis的属性
然后就可以运行查看使用了,鼠标左键拖动是移动,鼠标中间是旋转,右键或者滑动鼠标中间是放缩。
4、改进优化
写在最后:因为我们其实有一个前端系统有空气质量监测的一个前端用的node.js,本身这个可以unity结合supermap插件可以导出webgl的项目,然后再前端可以进行一个调用展示,基本上没有跨技术,官方文档里面也有写发布WebGL及Demo使用
所以大家其实感兴趣可以在我提供的基础上走的更远,因为我这个只能在unity3d里面构建,生成webgl失败了我(因为版本问题),后来就放弃了,因为半天做完的,第二天就要答辩了,还有PPT和报告,我就没时间继续做下去了,感兴趣的友友们可以继续往下做哦,有结果了记得和我分享一下成功的快乐,嘻嘻。