SceneControl和GlobeControl比较

SceneControl的定义

SceneControl是一个高性能的嵌入式的开发组件提供给开发建立和扩展Scene程序,当然其也提供了基于ArcScene™ 功能来给用户进行绘图等操作,控件SceneControl相当与ArcScene Desktop应用程序中的3D视图并且提供了显示和增加空间数据到3D的方法等。

GlobeControl的定义

GlobeControl是一个高性能的嵌入式的开发组件提供给开发建立和扩展ArcGlobe程序, 当然其也提供了基于ArcGlobe ™ 功能来给用户进行绘图等操作,GlobeControl显示3D视图并能提供全球表现的位置而且是基于3D数据。

 

SceneControl 功能

 

SceneControl是单一的开发进程并且提供粗粒度ArcObjects组件对象,当然也提供了强大纹理着色的 ArcObjects 组件,SceneControl 通过对象接口ISceneViewer来表现,同样ISceneViewer对象布著在ArcScene 应用程序中,ISceneViewer对象中包含了一个Camera并且Camera又包含了一个Observer Target 位置,SceneControl提供方便的方式来设置属性和方法操作对象,例如: SceneControl拥有Camera, Scene, SceneGraph, SceneViewer 属性,这个SceneControl 也提供了一些共同任务的方法,例如:这个SceneControl 有一个LoadSxFile方法来导入scene文档,SceneControl是进行三维开发最基本的控件,因为其提供了用户界面所以更容易初进行开发,当然使用对象模型也能很容易地理解及开发三维功能,我们可以看一下其对象图。

GlobeControl 功能

 

GlobeControl 也是单一的开发进程并且提供粗粒度ArcObjects组件对象,当然也提供了强大纹理着色的 ArcObjects 组件,GlobeControl 通过对象接口来操作IGlobe视图,你可以通过IGlobeViewer 对象来操作 ArcGlobe 应用程序,这个IGlobeViewer 接象包含一个GlobeDisplay GlobeDisplay 包含一个 Globe,这个GlobeControl提供了经常使用的属性和方法,例如:GlobeControl GlobeCamera, Globe, GlobeDisplay, GlobeViewer 属性,当然GlobeControl 也能执行一些方法或任务,例如: GlobeControl Load3dFile 方法来导入globe文档,GlobeControl是进行三维开发最基本的控件,因为其提供了用户界面所以更容易初进行开发,当然使用对象模型也能很容易地理解及开发三维功能,我们可以看一下其对象图。

 

SceneControl控件中有效的工具和命令

 

3DAnalyst 类库包含了命令、工具和工具集与SceneControl共同工作来执行操作,例如:scene navigation 命令和工具来移动新的位置(camera),对于一个Scene命令包含了GUID和命令描述,详细你可以参照“Names and IDs of the ControlCommands” 部分,这个已经集成在帮助中,在这其中定义了Commands tools ,例如:Pan, zoom, fly, set observer, select Toolbars,主要是定义在ControlsSceneSceneToolbar库文件为esriSceneControl.ocxesri3DAnalyst.olb,我们可以看看下面所有SceneControl中已经提供了命令、工具。

 

GlobeControl控件中有效的工具和命令

 

esriGlobeCore类库中包含了工具、命令和工具集与共同工作来执行操,例如:spin 命令在Globe中应用,对于一个Globe命令包含了GUID和命令描述,详细你可以参照“Names and IDs of the ControlCommands” 部分,这个已经集成在帮助中,在这其中定义了Commands tools ,主要是定义在ControlsGlobeGlobeToolbarControlsGlobeRotateToolbar 库文件为esriGlobeControl.ocx

 

esriGlobeCore.olb,我们可以看看下面所有GlobeControl 中已经提供了命令、工具。

 

SceneControl GlobeControl的不同

 

下面我们将列出一些SceneControl GlobeControl两者有一些不同的地方:

 

Eventually, some of the missing functionality on the Globe side will be added as part of the

 

enhancements in future releases.

 

SceneControl支持下面的主要特征: 

 

3D线符号有Tubes, walls, textured lines

 

TIN 数据显示和分析 

 

基于内存Memory的显示原理

 

支持立体和平面视图 

 

表面分析工具,比如:最短路径和等高线的生成l

 

Layer 支持(比如图层坐标转换)

 

输出到3D格式(vrml)

 

动态阴影效果

 

No projection requirements of data

 

GlobeControl支持下面的主要特征:

 

所有的数据源必须具有空间参考

 

空间参考可以是地理坐标系统或工程坐标系统

 

页面显示,提供多级显示机制,对于大数据量支持caching的方式。

 

超连接(hyperlinks)

 

导航和分析工具比如量测、步行、放大、缩小、移动目标到中心,缩放目标

 

地图符号支持光栅要素图层

 

旋转工具栏

 

各式各样的显示目标(正面朝上)、观测者位置和指北针、剪切控制面板

 

可以创建一个模板图层,比如:MapServer layers, ArcIMS Image layers, feature annotation layers, WMS layers MOLE™(Military Overlay Editor) layersFeature透明度,在GlobeControl中有一些数据不被支持,比如Tracking Analyst 图层, 测量layers Geostatistics 图层,另外,TINs数据不直接支持所以要转换成栅格(rasters.

          SceneControl GlobeControl有一些相似对于3D对象操作类似功能,在Scene Globe都支持2D 3D 数据图层,在Scene Globe中的对象都允许进行3D 控制,其中MapControl中的Map CoClass相似,我们从下面的图中见到这两者的一些区别及相似的地方:

 

SceneGraph GlobeDisplay

 

SceneGraph GlobeDisplay都是进行3D绘制和着色功能的类,当然还是有一些3D制图程序方面还是有一些不同,对于视图窗口,你可以Add, remove, set active, refresh 等操作,也可以改变其的一些属性,比如:Vertical exaggeration, extent, contrast,以及对caches的控制。

 

SceneViewer GlobeViewer

 

SceneViewer GlobeViewer SceneControlGlobeControl中的3D显示窗口,当然他们都是各自支持自身的控件,当然这个当前的视图可以通过ActiveViewer来得到,对于I3DViewer 提供了一些共同的属性和方法来对scene globe的视图进行操作并且比如全屏等都可以在Scene Globe中都可以使用,它们都是非模态3D显示窗口,也能通过不同的视角来显示3D数据。

 

Camera GlobeCamera

 

Camera GlobeCamera分别控制着一个scene viewerGlobe中的不同的观测点。

 

 

 

 

 

 

 

 

 

 

posted @ 2013-05-30 06:50  清灵阁主  阅读(1024)  评论(0编辑  收藏  举报