资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
基于 SketchUp 和 ArcGIS Engine 的三维浏览查询系统研究马素颜(华东师范大学地理信息科学教育部重点实验室,上海 200062)摘要:ArcGIS 软件不能直接创建 Multipatch 三维模型,只能通过 ArcObject 编程实现或导入其他建模软件的模型,然而这两种方式都不够全面。本文借助 Google SketchUp 软件在ArcGIS 环境中,以华东师范大学为例,将 SketchUp 比较完美的建模效果、强大的属性信息编辑与 Arc Engine 中的属性查询统一起来,开发了一个简单的三维浏览查询系统。关键词: 三维 GIS,Multipatch 三维模型,Google SketchUpResearch on 3D Navigation and Inquiry System Based on SketchUp and ArcGIS EngineMA Su-yan(Key Laboratory of Geographic Information Science, Ministry of Education,East China Normal University, Shanghai 200062,China)Abstract: Software ArcGIS cannot directly create Multipach Model of ESRI format, which means it could only load models created by other software or create models by means of AO programming, while these two measures have their limitations in editing property information or creating models respectively. This paper is based on the models created by SketchUp, using SketchUp6 ESRI plugin to transform the models into Multipach Model of ESRI format. Moreover, this paper takes the buildings in ECNU as an example to realize the function of searching property information by AE programming.Key words: 3D GIS; Multipach Model of ESRI format; Google SketchUp0 引言三维地理信息系统(3DGIS)是当今 GIS 发展的一个热点。三维 GIS 对客观世界的表达能给人以更真实的感受,它不仅能够表达空间对象间的平面关系,而且能描述和表达它们之间的垂向关系1。目前,3DGIS 的开发方式主要有两种:一是在专业的二维 GIS 软件平台上进行三维的二次开发,如 ArcGIS,SuperMap 等平台都提供了三维功能的开发接口;二是以其他三维或者 2.5 维软件作为平台,进行开发,如 Skyline 软件等。比较这两种方法,前者较后者的三维空间分析功能更强大,而后者较前者的三维模型建立方面有优势。其中ArcGIS 作为 GIS 行业基础软件的领头羊,在社会生产、生活实践中有着广泛地应用,很自然地成为构建三维地理信息系统的重要选择,但 ArcGIS 中模型的精确建立受到自身技术的一些限制。而利用 Google SketchUp 软件(以下简称 SU)可以很好的解决这一问题,并且所建的模型能够直接转换为 ArcGIS 的三维模型格式 Multipatch。本文将 SU 强大的建模功能与 ArcGIS Engine(以下简称 AE)结合起来,并在三维的浏览与查询功能开发方面做了一个尝试。1 ArcScene 平台与 Multipatch 三维数据模型ArcGIS 3D 分析系统是 ArcGIS 桌面产品的三维可视化和分析扩展模块。它可以有效地显示和分析表面数据及内含的三维可视化和地形建模功能。3D 分析扩展模块的核心是 ArcScene应用,它为多层三维数据图的显示观察以及表面数据生成和分析提供了用户界面。2 新实用的 Multipatch 技术更是强大了 ArcScene 构建三维模型方面的功能。Multipatch 模型从抽象类 Geometry 中继承,它是一系列 3D 表面的集合。所有的 3D 表面在几何上主要是由Triangle Strips, Triangle Fans 和 Rings(ring-groups )所代表,如图 1 所示。2 SU 中三维建模方法在地理信息系统中,地理要素分为地物要素和地形要素两大类。2.1 地形建模地物都是建在或长在地形基础之上的。要实现三维景观的比较真实的虚拟,对于起伏大的地区,地形的三维构建很重要。在 SU 中,有专门创建地形的扩展工具栏-沙盒(SandBox) ,使用该工具创建的地形是许多个小三角形的集合,类似 TIN(不规则三角网) 。只要把等高线直接导入进来,就可以通过该工具直接创建真实的三维地形。42.2 地物建模与其他建模软件类似,SketchUp 中完整的建模过程包括几何建模和贴图纹理制作两步。2.2.1 几何建模地物要素可分为点状要素、线状要素、面状要素三大类。1、 点状要素建模地理环境中,行道树、路灯、垃圾桶等往往被抽象成点状要素。路灯和垃圾桶等具有规则的几何形状,与面状要素的建模类似。树木的建模相对来讲比较困难。其他的建模软件如MultiGen Creator 中对树木的建模采用 BillBoard 技术,将树木抽象成两个交叉的十字面,建出来的模型“只可远观” ,效果不太理想。而在 SU 中,有一个自由手绘(Freehand)工具,可以实现树木的精确建模。Freehand 工具的使用就像随手涂鸦一样,允许用户在三维空间内画出想要的复杂模型。用此工具建出来的树以及其他植被比较真实。而且 SU 的网络资源很丰富,有大量的树木模型可供用户免费下载使用。2、 线状要素建模线状要素包括河流、航线、道路等。以道路为例,首先应该在 SU 中将其扩展成面的形式,才能对其进行后面的贴图纹理制作,使其具有很高的仿真性。对于一条位于起伏地形基础上的道路,可以使用 Sandbox(沙盒)系列工具中的 Drape 工具,将一条平面上的道路投影到起伏地形的曲面之上。3、 面状要素建模地理环境中很多地物以面状要素形式存在,如建筑物、草坪、空旷的场地等。本系统中建筑物是最重要的地物。对建筑物的建模基本就是画线成面,挤压成型。所用到的工具有:推拉工具和路径跟随工具。本系统是要精确到层,因此应以层为单位进行建模,对于比较规则的、层与层之间相同的建筑物,将每层设置为一个组件(Component) ,只需复制粘贴就可完成其他层的建模,最后,整栋建筑物作为一个组(group) ,组的名称对应相应的建筑物名。2.2.2 贴图与材质几何建模只是给了我们建筑物的几何框架,需要在其表面或内部赋上纹理和贴图使其更加真实。贴图的好坏至关重要,直接影响到三维景观的视觉效果。SketchUp 中贴图制作集中在 Paint Bucket 工具中。可以利用程序自带的材质库中的材质和纹理,也可以自己拍摄、处理贴图,导入到 SU 中使用;可以设置贴图的具体尺寸;贴图的调整主要是通过贴图坐标来调整,可以实现曲面贴图,包裹贴图等高级贴图方式;吸管工具可以很方便地完成具有相同贴图的面的贴图操作;另外还可以对贴图进行扭曲变形达到想要的效果。SU 也支持镂空贴图,将带有 Alpha 通道的图片导入进来就能实现透明效果;将不同的对象赋予不同的材质,根据材质可以很方便的计算出某种对象的面积。4-53 SketchUp 模型转换为 Multipatch 模型方法SketchUp6 版本推出了 SketchUp6 ESRI 插件,该插件实现了从 SketchUp 模型直接转为Multipatch 模型。这就大大方便了和改进了 ArcGIS 中三维模型的构建。而在此之前,创建Multipatch 模型的方法主要有两种:一是通过 ArcObjects 编程实现,二是将其他一些建模软件的创建的三维模型直接转化为 Mulitipatch 模型。6其中后者虽然也比较简单,但是由此得到的 Mulitipatch 模型的属性信息很简单,只有 Geometry、ObjectIden、File Name 三个字段,限制了进一步的三维查询以及其他更复杂的分析功能的开发。安装好 SketchUp6 ESRI 插件后,在 ArcMap 和 ArcScene 中会加载一个 SketchUp 6 Tools 工具。此工具的作用是将 ArcMap 和 ArcScene 中打开的数据(包括 TIN 数据、矢量数据、栅格数据)导入到 SketchUp 中作为底图或者参考图层进行地物或地形的三维建模。7需要说明的是,所有导入到 SketchUp 的数据均会保留原来与 ArcGIS 中一致的坐标信息,这样的话将 SketchUp 的模型或地形导到 ArcGIS 中时与原来的位置能保持完全一致。同时在 SketchUp 的 Export/3D Models 里的 Export Type 中会多出 ESRI Multipatch(*.mdb )项,这样就可以把 skp 的模型直接导成 Multipatch 格式。并且在导出模型的同时可以设置每个 multipatch 模型的属性信息。对于本系统中的建筑物,因为要实现每个楼层的查询,所以将每个楼层作为一个组(Group )导出,对应一个 Multipatch 模型。其属性信息主要包括 ID(楼号) 、Attribute(属性) 、Name(名称) 、Floor(楼层) 、Usage(用途) 五个字段。如图 4 所示:4 三维浏览查询程序实例由于华东师范大学中山北路校区的地势比较平坦,而且区域面积相对比较小,所以本系统中不考虑三维地形的构造。校园地物主要分为四类:建筑物、道路、植被、河流。每一种地物的建模利用上述所讲的方法进行模型制作。然后将每个地物依照上面所述方法转换成 Multipatch 模型,在此基础上利用 ArcGIS Engine 与 VB 编程主要实现了以下功能:1、浏览功能包括对视图的放大、缩小、旋转、Navigate、Fly 功能等。这一部分主要通过设置 ToolBar的属性,获得 ArcScene 中浏览系列工具的重用。2、查询功能(1)查询建筑物的属性信息点击建筑物的某个楼层,可以显示详细的属性信息,包括所属建筑物的名称、编号、属性、楼层、用途等属性信息。功能实现方法如下:1)调用 IScenegraph 的 Locate()方法将鼠标点击位置的屏幕坐标转换为三维空间点坐标;2)返回点击选择的建筑物对象;3)将建筑物对象传递给属性显示窗体。结果如图 6 所示:(2)根据属性字段定位建筑物比如要查华东师范大学的球类场馆在哪个位置,在查询的下拉框中选择“Usage”为“球类场馆” ,目标楼层就会定位在大学生活动中心的四层,并在视图中高亮显示。实现方法:1)创建查询过滤器,并赋予其条件查询语句;2)调用 IFeatureClass 的 Select 方法选择符合条件的要素;3)将选中的要素在 SceneControl 中高亮显示。结果如图 7 所示:5 结语Google SketchUp 软件为强大 ArcGIS 中三维显示方面提供了一条新思路,利用它提供的插件可以灵活地对 Multipach 的属性信息进行直接的添加和修改,从而将 ArcG
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号