上一节介绍了将二维数据转化为三维数据,并作为CityEngine的基础数据。下面介绍的过程中建立三维费城的二维和三维地理信息系统数据。使用的数据是虚拟城市模板的一部分。

1、下载数字城市模板

有两种方法下载数字城市的模板:

1、登录CityEngine模板库官方网站:http://www.arcgis.com/home/group.html?owner=CityEngine&title=CityEngine%20templates&content=all下载CityEngine: Philadelphia example;

2、启动CityEngine,菜单File -> Help -> Download Tutorials and Examples 在Examples选项卡中Philadelphia例子既可以,如图1所示

图1下载模板

2、加载数字城市模板

如果在CityEngine模板库中,下载模板则需要将模板导入到CityEngine工作空间中:

1、菜单File -> import -> Project -> existing project into workspace,如图2所示:

图2导入模板到工作空间中

2、在 Select archive file选择项中选择 Example_Philadelphia.zip文件。在Project选项卡中选择Example_Philadelphia__2011_1,点击Finish即可。

图3导入模板

3、创建新的场景

这个模板中已经有3个已经准备好的场景,您可以双击这些场景进行浏览,如图4所示:

图4现有场景

现在让我们从头开始,创建一个新的场景。菜单File->New->CityEngine->CityEngine scene ,选择项目的场景目录,给它一个名称和设置坐标系统(EPGS:2272)如图5所示:

图5创建场景

4、添加地形和影像

在Example_Philadelphia__2011_1/data/DEM目录下面找到DEM_burn.tif,选中它然后将它拖动到视窗里面(viewport)。在Choose coordinate system for ‘DEM_burn.tif’对话框中选中同样的坐标系(EPGS:2272)。在弹出的Terrain对话框中,Texture file选项卡中选择贴在地形上的影像(data/basemap/Philly_basemap3.tif)。如图6所示

图6选择影像

点击Finish按钮,按“f”键盘场景放大到数据的位置。如图7所示

图7地形和影像

5、添加GIS数据

在Example_Philadelphia__2011_1/data目录下面找到Results.gdb,选中它然后将它拖动到视窗里面(viewport)。在File Geodatabase Import对话框中(如图8所示),点击Finish,将GIS数据加载到了场景中如图9所示:

图8 File Geodatabase Import对话框

图9 GIS数据

6、使用规则

1、使用矢量建筑轮廓和属性创建三维建筑

A、选择“Building1_footprints3D”图层的所有对象:可以选中图层上的一个对象,右键菜单 Select->Select Objects in the Same Layer选中该图层上的所有对象,如图10所示:

图10选择同一图层上的所有对象

B、在Example_Philadelphia__2011_1/rules目录下面找到GIS-Driven buildings.cga规则文件,选中它然后将它拖动到“Building1_footprints3D”图层选中的所有对象上。矢量对象按照GIS-Driven buildings文件中的规则产生三维模型,如图11所示:

图11 GIS-Driven building规则产生模型

C、这个规则使用了GIS数据中的屋檐高度(Eave_Ht),脊高(Ridge_Ht)和屋顶样式(Roof _Form)等属性数据来生成三维建筑。使用规则创建模型的优势是,您可以通过改变规则来轻松地修改模型。例如,选择一个感兴趣的建筑打开Inspector对话框,可以修改屋檐高度,脊高,屋顶样式、侧面纹理和屋顶纹理等属性,如图12所示:

图12修改模型属性

2、使用建筑轮廓导入已有三维模型

如果您已经有了一些三维模型,这些模型都是通过第三方建模软件生成的。有两种方式可以将这些模型导入到CityEngine中:

A、如果模型带有地理坐标,例如dae/kml文件,可以直接将这些文件拖到CityEngine中。也是使用菜单File->Import使用导入对话框工具,将一个目录下面的所有*.kml文件导入到场景中。

B、如果模型没有位置信息,您可以使用矢量建筑物轮廓来为模型定位。选择Building2_footprints3D图层上的所有矢量对象,在Example_Philadelphia__2011_1/ rules目录下面找到Collada_Buildings.cga规则文件,选中它然后将它拖动到Building2_footprints3D图层选中的所有对象上。即可将已有的模型按照地理位置导入到CityEngine场景中,如图13:

图13导入已有模型

注:1、可以看到CityEngine可以很好的支持已有三维模型,CityEngine可以很非常方便模型的进行模型修改或更新。

2、选择所有矢量对象的时候,可以选择某一个模型然后右键菜单 Select->Select Objects in the Same Layer。还可以在Scene对话框(如图14所示)上关闭其他矢量图层,软后Ctrl+A,选中打开图层中的所有对象。

图14关闭其他图层

3、创建植物和街道设施

GeoDatabase中的植物点数据,它提供了植物的位置并且带有植物的大小和类型等属性。根据这些数据可以将已有的三维模型按照正确的大小导入到场景中。选择Vegetation3D layer图层上的所有矢量对象。在Example_Philadelphia__2011_1/ rules目录下面找到Vegetation.cga规则文件,选中它然后将它拖动到Vegetation3D laye图层选中的所有对象上。同样的方式选中StreeFurniture3D layer图层上的所有矢量对象,将Street Furniture.cga规则赋予它们,效果如图15所示:

图15植物和街道设施

4、创建街道

从图16上可以看到街道矢量部分插入到了地面里面。

图16街道陷入地形

这是由高程的精度低或者构建街道的三角网稀疏造成的,可以在CityEngine中进行调整:选择Streets3D layer上的所有矢量对象,菜单Layer->Align Shapes To Terrain,在Align Terrain对话框(如图17所示)上Maximal raise distance选项卡中选择1米,点击Apply按钮。

图17调整地形

选择Streets3D layer上的所有矢量对象,赋予Street Construction.cga规则,可以在Inspector对话框调整中调整Vehicles per km和People percentage为道路添加一些车辆和行人,如图18所示:

图18创建街道

7、导出结果

3D城市创建完成后,可以使用CityEngine进行浏览也可以将创建好的模型导入到ArcGIS中以进行海量数据的浏览和更深入的分析。将模型导入到ArcGIS中可以先将模型导出成COLLADA (dae),更详细的操作请关注系列文章《使用GIS模板创造三维数字城市(三)》。

CityEngine使用GIS模板创造三维数字城市(二)相关推荐

  1. CityEngine使用GIS模板创造三维数字城市(一)

    ArcGIS提供了ArcScene和ArcGlobe两种应用程序,二维数据可以以三维的形式进行可视化展示.然而,一般采用设置图层的"Base Heights"属性实现. 某些情况下 ...

  2. CityEngine使用GIS模板创建三维数字城市(三)

    从前一篇教程我们可以知道,CityEngine最大的优势在于直接使用GIS数据来快速创建虚拟城市.另外,还提供了强大三维设计能力,对于城市规划设计起到了积极作用. 下面利用费城数据,以地块的规划和设计 ...

  3. FME在三维数字城市建设中的应用初探

    原文发布时间:2011-05-10 21:44:16 作者:昆明市测绘研究院信息中心 李 宁  QQ:75968655 题记 在实际工作中,笔者只是一个一线的数据加工者,所以本文所要讲述的内容主要以数 ...

  4. 中国三维数字城市将遵循武汉标准

    2011年10月1日实行,好好学学,准备数字城市中的三维建设. 武汉市国土规划局昨宣布:国家住房和城乡建设部已发布公告,批准该局主编的<城市三维建模技术规范>成为全国行业标准,明年10月1 ...

  5. CityEngine创造鲜活的三维数字城市

    Esri CityEngine可以利用二维数据快速创建三维场景,并能高效的进行规划设计.对ArcGIS的完美支持,使很多已有的基础GIS数据不需转换即可迅速实现三维建模,减少了系统再投资的成本,也缩短 ...

  6. 创造鲜活的三维数字城市

    Esri CityEngine可以利用二维数据快速创建三维场景,并能高效的进行规划设计.对ArcGIS的完美支持,使很多已有的基础GIS数据不需转换即可迅速实现三维建模,减少了系统再投资的成本,也缩短 ...

  7. 数字城市大会(1)——三维论坛

    今年的数字城市大会在北京举办,展厅在北京展览馆,论坛在新世纪日航饭店.我们一行几人也参加了此次大会,在论坛上,听取了用户和厂商们的最新认识,总结了其中的部分,与大家共享:) 一. 三维数字城市研讨会 ...

  8. 数字城市的意义有哪些?如何构建数字城市?

    在信息化建设的过程中,常常会面临数据不互通.不关联.难挖掘等难题.数字城市能紧跟新技术.新标准和新要求,适时对系统建设标准进行调整,以便在建成后能充分发挥智慧城市的数字底座作用. 数字城市建设是数字中 ...

  9. 数字城市的建设有哪些意义?如何构建数字城市?

    在信息化建设过程中,时常会面临数据不互通.不关联.难挖掘等难题.数字城市能根据新技术.新标准和新要求对系统建设标准进行调整,以便在建成后能够充分发挥智慧城市的数字底座作用. 数字城市建设是数字中国建设 ...

最新文章

  1. Java线程优先级的概念
  2. 分页查询时如何优化MySQL的性能?
  3. python preference界面设置_Python preferences
  4. java paint调用,求教 如何调用这个paint
  5. 32位、64汇编区别
  6. 有了解过Elasticsearch的性化搜索方案吗?
  7. 一款显示游戏计算机占用软件,玩游戏占用电脑内存多怎么办
  8. docker快速安装nginx以及实现反向代理(上)
  9. 社区分享|Arm 中国生态技术市场经理教你玩转 TFLite Micro 端云一体解决方案
  10. 常见单位换算[时间,距离,热量...]
  11. 【Spring】IoC,DI,两种代理方式,AOP定义和使用
  12. SQLServer过期解决步骤
  13. android汤姆猫的实验报告,毕业设计(论文)-基于Android的会说话的汤姆猫的设计与实现.doc...
  14. 【DirectX11】【学习笔记(10)】混合
  15. HTML5+获取设备信息
  16. 解密秒杀系统架构:不是所有的秒杀都是秒杀
  17. 分布式事务实现原理【BAT 面试题宝库附详尽答案解析】
  18. SQL Server 如何启用sa账户
  19. jquery --为当前 li下的a 添加样式
  20. c++11新特性--decltype

热门文章

  1. 第四方聚合支付平台有哪些
  2. 作为一个程序员,我们到底要学什么?
  3. VAULT高可用集群部署
  4. 毛尚爱分享:避免被割韭菜的正确姿势有哪些
  5. tenda 服务器无法打开网页,腾达路由器打不开网页怎么办
  6. C# 给PDF签名时添加时间戳的2种方法)
  7. 如何将一个向量投影到一个平面上_Normal Equation的向量投影解法与几何和直觉解释...
  8. 多媒体会议室系统有哪些功能,小型会议室系统解决方案
  9. MySQL并发 共享锁目的_mysql并发与锁机制
  10. 如何每天自动申请京东试用