Programmatically adjusting the ArcGlobe camera properties


This document was published with and applies to ArcGIS 9.3.
PurposeIGlobeCamera is an ArcObjects interface exposed by the ESRI.ArcGIS.GlobeCore namespace that allows one to adjust globe camera properties from within ArcGlobe. Given that adjustments to the globe camera properties trigger visually observable effects, it may not be clear to someone coding against this interface exactly what visibly observable changes would be apparent when exercising a property or method exposed by this interface. This tool then serves to bridge the gap between the coding environment and ArcGlobe interface by providing a Windows Form UI that allows one to visually adjust properties exposed by IGlobeCamera. This allows one to learn quickly about what various IGlobeCamera properties/methods signify and are designed to do.

Development licensing Deployment licensing
ArcView: 3D Analyst ArcView: 3D Analyst
ArcEditor: 3D Analyst ArcEditor: 3D Analyst
ArcInfo: 3D Analyst ArcInfo: 3D Analyst

How to use

See Using the samples for help on compiling, setting up the debugger, and running the sample (either an exe or dll).

Running this sample from ArcGlobe
  1. Compile the sample.
  2. Run ArcGlobe.
  3. Right click on one of the existing toolbars and select "Customize…".
  4. Select the "Commands" tab.
  5. Click "Developer Samples" in the "Categories" pane so it is highlighted.
  6. Click and drag the "GlobeCamera Controller" icon from the "Commands" pane onto one of the existing toolbars.
  7. Close the "Customize" dialog.
  8. Click the GlobeCamera Controller icon to launch the developer sample, opening the UI shown in the image below.
  9. Adjust the various properties/settings exposed by the GlobeCamera Controller UI and observe the effects such changes have on the globe display.
  10. Alternatively, select the Navigate tool from the ArcGlobe Tools toolbar and navigate using this tool. Doing so with the GlobeCamera Controller UI open will allow you to see the changes made by your navigation to the GlobeCamera properties.

  11. the UI for adjusting the camera properties

GlobeCameraController/Command.cs Command Implementation
GlobeCameraController/GlobeCamera.cs GlobeCamera Implementation (Custom)
GlobeCameraController/GlobeCameraAccurateViewDirection.cs GlobeCameraAccurateViewDirection Implementation
GlobeCameraController/GlobeCameraExtent.cs GlobeCameraExtent Implementation
GlobeCameraController/GlobeCameraFrustumSkewRectangle.cs GlobeCameraFrustumSkewRectangle Implementation
GlobeCameraController/GlobeCameraGeneral.cs GlobeCameraGeneral Implementation
GlobeCameraController/GlobeCameraLocalOrientation.cs GlobeCameraLocalOrientation Implementation
GlobeCameraController/GlobeCameraObserver.cs GlobeCameraObserver Implementation
GlobeCameraController/GlobeCameraTarget.cs GlobeCameraTarget Implementation
GlobeCameraController/GlobeCameraUI.cs GlobeCameraUI Implementation
GlobeCameraController/GlobeCameraUI.Designer.cs GlobeCameraUI Designer Implementation
GlobeCameraController/GlobeDisplay.cs GlobeDisplay Implementation (Custom)
GlobeCameraController/IGlobeCamera.cs IGlobeCamera Interface (Custom)
GlobeCameraController/IGlobeCameraAccurateViewDirection.cs IGlobeCameraAccurateViewDirection Interface
GlobeCameraController/IGlobeCameraExtent.cs IGlobeCameraExtent Interface
GlobeCameraController/IGlobeCameraFrustumSkewRectangle.cs IGlobeCameraFrustumSkewRectangle Interface
GlobeCameraController/IGlobeCameraGeneral.cs IGlobeCameraGeneral Interface
GlobeCameraController/IGlobeCameraLocalOrientation.cs IGlobeCameraLocalOrientation Interface
GlobeCameraController/IGlobeCameraObserver.cs IGlobeCameraObserver Interface
GlobeCameraController/IGlobeCameraTarget.cs IGlobeCameraTarget Interface
GlobeCameraController/IGlobeDisplay.cs IGlobeDisplay Interface (Custom)
Download the C# files
GlobeCameraController/Command.vb Command Implementation
GlobeCameraController/GlobeCamera.vb GlobeCamera Implementation (Custom)
GlobeCameraController/GlobeCameraAccurateViewDirection.vb GlobeCameraAccurateViewDirection Implementation
GlobeCameraController/GlobeCameraExtent.vb GlobeCameraExtent Implementation
GlobeCameraController/GlobeCameraFrustumSkewRectangle.vb GlobeCameraFrustumSkewRectangle Implementation
GlobeCameraController/GlobeCameraGeneral.vb GlobeCameraGeneral Implementation
GlobeCameraController/GlobeCameraLocalOrientation.vb GlobeCameraLocalOrientation Implementation
GlobeCameraController/GlobeCameraObserver.vb GlobeCameraObserver Implementation
GlobeCameraController/GlobeCameraTarget.vb GlobeCameraTarget Implementation
GlobeCameraController/GlobeCameraUI.vb GlobeCameraUI Implementation
GlobeCameraController/GlobeCameraUI.Designer.vb GlobeCameraUI Designer Implementation
GlobeCameraController/GlobeDisplay.vb GlobeDisplay Implementation (Custom)
GlobeCameraController/IGlobeCamera.vb IGlobeCamera Interface (Custom)
GlobeCameraController/IGlobeCameraAccurateViewDirection.vb IGlobeCameraAccurateViewDirection Interface
GlobeCameraController/IGlobeCameraExtent.vb IGlobeCameraExtent Interface
GlobeCameraController/IGlobeCameraFrustumSkewRectangle.vb IGlobeCameraFrustumSkewRectangle Interface
GlobeCameraController/IGlobeCameraGeneral.vb IGlobeCameraGeneral Interface
GlobeCameraController/IGlobeCameraLocalOrientation.vb IGlobeCameraLocalOrientation Interface
GlobeCameraController/IGlobeCameraObserver.vb IGlobeCameraObserver Interface
GlobeCameraController/IGlobeCameraTarget.vb IGlobeCameraTarget Interface
GlobeCameraController/IGlobeDisplay.vb IGlobeDisplay Interface (Custom)
Download the VB.NET files

Download the files for all languages