Description
Returns the altitude at the specified position relative to the input reference surface. If the specified position is outside terrain sources, the altitude of 0.0 relative to the default reference ellipsoid (WGS84 for Earth) is returned.
Syntax
[Visual Basic .NET] |
---|
Public Function GetAltitude( _
ByVal Lat As System.Object, _
ByVal Lon As System.Object, _
ByVal AltRef As AgEAltRefType _
) As Double
|
Parameters
Example
Gets the altitude of the terrain at a single location and in batches.
[C#] | Copy Code |
---|
IAgScenario scneario = (IAgScenario)root.CurrentScenario;
IAgCentralBodyTerrainCollectionElement earthTerrain = scneario.Terrain["Earth"];
earthTerrain.TerrainCollection.Add(terrainFile, AgETerrainFileType.ePDTTTerrainFile);
double altitude = earthTerrain.GetAltitude(latitude, longitude, AgEAltRefType.eMSL);
Array specifiedPositions = new object[,]
{
{ 40.0386, -75.5966 },
{ 28.5383, -81.3792 },
{ 37.7749, -122.4194 }
};
Array altitudes = earthTerrain.GetAltitudeBatch(ref specifiedPositions, AgEAltRefType.eWGS84);
int numPoints = altitudes.GetLength(0);
for (int i = 0; i < numPoints; ++i)
{
Console.WriteLine("Latitude={0}, Longitude={1}, Altitude={2}", specifiedPositions.GetValue(i, 0), specifiedPositions.GetValue(i, 1), altitudes.GetValue(i));
}
|
|
Gets the altitude of the terrain at a single location and in batches.
[Visual Basic .NET] | Copy Code |
---|
Dim scneario As IAgScenario = DirectCast(root.CurrentScenario, IAgScenario)
Dim earthTerrain As IAgCentralBodyTerrainCollectionElement = scneario.Terrain("Earth") earthTerrain.TerrainCollection.Add(terrainFile, AgETerrainFileType.ePDTTTerrainFile)
Dim altitude As Double = earthTerrain.GetAltitude(latitude, longitude, AgEAltRefType.eMSL)
Dim specifiedPositions As Array = New Object(,) {{40.0386, -75.5966}, {28.5383, -81.3792}, {37.7749, -122.4194}}
Dim altitudes As Array = earthTerrain.GetAltitudeBatch(specifiedPositions, AgEAltRefType.eWGS84)
Dim numPoints As Integer = altitudes.GetLength(0) Dim i As Integer = 0 While i < numPoints Console.WriteLine("Latitude={0}, Longitude={1}, Altitude={2}", specifiedPositions.GetValue(i, 0), specifiedPositions.GetValue(i, 1), altitudes.GetValue(i)) System.Threading.Interlocked.Increment(i) End While
|
|
See Also