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.ocx、esri3DAnalyst.olb,我们可以看看下面所有SceneControl中已经提供了命令、工具。
GlobeControl控件中有效的工具和命令
esriGlobeCore类库中包含了工具、命令和工具集与共同工作来执行操,例如:spin 命令在Globe中应用,对于一个Globe命令包含了GUID和命令描述,详细你可以参照“Names and IDs of the ControlCommands” 部分,这个已经集成在帮助中,在这其中定义了Commands 和 tools ,主要是定义在ControlsGlobeGlobeToolbar和ControlsGlobeRotateToolbar 库文件为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) layers,Feature透明度,在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 是SceneControl和GlobeControl中的3D显示窗口,当然他们都是各自支持自身的控件,当然这个当前的视图可以通过ActiveViewer来得到,对于I3DViewer 提供了一些共同的属性和方法来对scene 和 globe的视图进行操作并且比如全屏等都可以在Scene 和 Globe中都可以使用,它们都是非模态3D显示窗口,也能通过不同的视角来显示3D数据。
Camera 和 GlobeCamera
Camera 和 GlobeCamera分别控制着一个scene viewer和Globe中的不同的观测点。