您的位置:首页 > 其它

CityEngine使用矢量数据制作三维专题图

2012-12-24 08:45 288 查看
在ArcGIS中,我们可以利用工具制作各种专题图,比如人口分布、降雨量分布等,相信我们在网上已经看到过各种专题图。然而,其形式主要体现在二维,那么如何制作三维的专题地图并能快速的实现在线共享呢?请往下看。
本文以2010年全国各省份GDP为例,使用CityEngine制作三维专题图并实现快速网络共享。

练习数据下载:点击下载
1 数据准备
由于是全国各省的GDP分布图,所以需要准备一个全国各省份的行政区划矢量数据(China.shp),如下图。


 
右键点击图层打开属性表添加一个数值类型的字段,命名为“GDP”。同时,启动编辑,将各省份的GDP数据录入属性表中,如果属性表中已经有数据就不用录入了。(单位:亿美元)


 


 
保存以后,数据就准备好了。
2 制作三维专题图
1) 打开CityEngine,并新建一个工程(File->New->CityEngine project),我这里命名为“StoryMaps_3D”。工程组织结构如下:


 
2) 通过资源管理器,将China.shp数据拷贝到“data”文件夹下;同时在“scenes”文件夹下右键新建(New->CityEngine scene)一个场景“StoryMaps_scene”,坐标系选择“Raw data in meters”。


 


 
3) 在“rules”文件夹下新建一个规则文件(New->CGA Rule File),双击规则文件并在代码模式下编写规则,如下图。


 
4) 双击规则编辑器的标签就可以全屏显示,接下来就是编写规则,将如下代码复制进去并保存即可。
 

//变量定义

@Group("GDP")
@Description("该省GDP值")

attr
GDP = 0

@Group("Settings")
@Order(1)
@Description("设置显示比例")

attr
Scale=1

@Group("Settings")
@Rand(0,1)
@Order(2)
@Description("设置透明度")

attr
Opacity=1

@Group("Settings")@Range("whiteToBlack","greenToRed","yellowToRed","redToBlue","orangeToBlue","brownToBlue")
@Order(3)
@Description("设置填充颜色")

attr
ColorRamp=
"yellowToRed"

@Group("Settings")
@Order(4)
@Description("设置颜色范围")

attr
ColorRange=1000

//规则编写

Lot-->

  
color(colorRamp(ColorRamp,GDP/ColorRange))//赋不同的颜色

  
set(material.opacity,Opacity)//设置透明度
   

  
extrude(world.y,GDP*Scale/100)//设置拉伸高度

注:本例是通过关联属性字段“GDP”来读取每个要素值并作为拉伸值,如果你的属性字段名称是“ABC”,那么请将上面规则中的所有“GDP”字母全部替换为“ABC”即可。
5) 将China.shp文件直接从“data”文件夹拖放到场景中,选择“meters”为单位,之后各省的行政区划图就加载进来了。如下图:


 
6) 在保证全选的状态下,将刚才编写的规则文件“rule.cga”拖放到矢量数据上,当选中的颜色变为橙色即可松开鼠标,最后专题图将自动生成三维专题图。


 
注:如果拖放规则以后没有生成三维效果,那么需要关联一下属性字段。在“Inspector”面板中找到“GDP”属性参数,并点击后面的小三角形图标,在弹出的对话框中启用属性字段关联,如下图。


 


 
7) 如果你想调整整体的三维显示效果,比如渲染颜色、透明度等,可以调整如下几个参数:
Scale:设置拉伸比例;
Opacity:设置透明度;
ColorRamp:设置渲染颜色带;
ColorRange:设置色带颜色范围;
3 快速发布三维专题图
专题图制作完成以后,接下来就是将其快速的发布出来,需要做如下操作:
1) 在发布之前我们做一些简单的设置,在左下角Scene面板中,选中当前图层“Shapes China”,在软件右边会弹出该图层信息,可以修改图层名称为“2010年全国各省GDP”,如下图。


 


   

另外,在场景中选中所有数据在右侧的Shapes面板中找到Object Attributes标签,删除不需要的属性信息(右键删除),只保留“GDP”和“Name”属性,接下来就可以发布场景了。


 

2) 全部选中所有数据,点击File->Export->Export Models of Seclected Shapes and Terrain Layers,在弹出的对话框中选择“CityEngine Web Scene”,点击下一步以后输入场景的名字为“2010年全国各省GDP统计(亿美元)”,接下来默认即可,点击Finish完成。


 
3) 在“models”文件夹下可以可以看到一个*.3ws场景文件包,如果没有,需要右键刷新一下“medels”文件夹。


 
4) 选中*.3ws文件,右键Open With->3D Web Scene Viewer,通过在线模版打开。由于该技术采用WebGL,所以只要支持WebGL的浏览器就能在线打开场景,无需插件,比如火狐、谷歌浏览器等。
 


火狐浏览器打开场景(无需插件)


 
点击查看某个省的GDP值(亿美元)


 
查询定位到某个省
4 部署到自己的服务器
所制作的*.3ws文件除了如上的打开方式以外,还可以将其部署到自己的服务器中,如IIS。详细请阅读博文《CityEngine Web Scene如何在IIS下部署》。
地址:http://blog.3snews.net/space.php?uid=53325&do=blog&id=65604
5 小结
本例是一个通用的例子,除了GDP统计以外,我们还可以制作降雨量,人口数量等专题图,实现的原理一样,当然也不仅仅局限于全国范围,也可以缩小到各区县之间的比较。本例同时还提供了完整的工程文件供大家下载练习使用。

 

练习数据下载:点击下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息