ArcObjects Library Reference (GlobeCore)  

IGlobeHeightProperties Interface

Provides access to members that manipulate the height properties of a globe layer. Note: the IGlobeHeightProperties interface has been superseded byIGlobeHeightProperties2. Please consider using the more recent version.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Description

The IGlobeHeightProperties interface can be used to manage the height properties of a data layer in globe.

Members

Description
Method Apply Apply to the corresponding layer.
Method ApplyFeatureProperties Obtain feature geometry with the correct properties.
Read/write property BaseLayer The base layer.
Read/write property BaseOption The base option.
Read/write property ElevationExpression The elevation expression for features, in globe units.
Read/write property ElevationExpressionString The elevation expression string for features, in globe units.
Read/write property ExtrusionExpression The extrusion expression object.
Read/write property ExtrusionExpressionString The extrusion expression string.
Read/write property ExtrusionType The extrusion type.
Read/write property HasElevationValues Indicates whether the feature layer has elevation values.
Read/write property Offset The constant elevation offset in meters.
Read/write property UseElevationValues Indicates whether elevation values in the feature layer are used.
Read/write property ZFactor The z factor.

CoClasses that implement IGlobeHeightProperties

CoClasses and Classes Description
GlobeHeightProperties The globe layer height properties.
[C#]

The code below illustrates how we can use IGlobeHeightProperties set the base height of a draped layer, present in the TOC, to a raster elevation surface.

public void Drape_Layer_On_ElevationRaster(IGlobeDisplay pGlobeDisplay, ILayer pLayer)
{
 IGlobeDisplayLayers pGlobeDispLyrs = (IGlobeDisplayLayers) pGlobeDisplay;

 //Create elevation raster layer
 IRasterLayer pElevLayer = new RasterLayerClass();
 pElevLayer.CreateFromFilePath("C:\\temp\\elev_raster");

 //Create and add the GlobeLayerProperties extension
 //with the Type set to ElevationData
 IGlobeLayerProperties pLyr_GlobeLayerProps = new GlobeLayerPropertiesClass();
 pLyr_GlobeLayerProps.Type=esriGlobeDataType.esriGlobeDataElevation;

 ILayerExtensions pLyrExt = (ILayerExtensions) pElevLayer;
 pLyrExt.AddExtension(pLyr_GlobeLayerProps);

 //Set the base option for pLayer to be esriGlobeLayerBaseLayer
 //and its base layer to be pElevLayer
 IGlobeLayerProperties pDrapeLyr_GlobeLayerProps;
 pDrapeLyr_GlobeLayerProps  = pGlobeDispLyrs.FindGlobeProperties(pLayer);

 IGlobeHeightProperties pDrapeLyr_GlobeHeightProps;
 pDrapeLyr_GlobeHeightProps = pDrapeLyr_GlobeLayerProps.HeightProperties;

 pDrapeLyr_GlobeHeightProps.BaseLayer = pElevLayer;
 pDrapeLyr_GlobeHeightProps.BaseOption=esriGlobeLayerBaseOption.esriGlobeLayerBaseLayer;

 //Apply the height properties of the pLayer
 pDrapeLyr_GlobeHeightProps.Apply(pGlobeDisplay.Globe, pLayer);
 pGlobeDisplay.RefreshViewers();
}

.NET Snippets

Add Drape Layer to Globe Elevation Surface

.NET Related Topics

GlobeCore | How to drape a layer on an elevation surface in globe