Gets the current set of GeographicTransformations used in the MapDisplay; this is a shortcut to either the
GeographicTransformations2D or GeographicTransformations3D property, depending on the current DisplayMode.
Namespace:
ESRI.ArcGISExplorer.Mapping
Assembly:
ESRI.ArcGISExplorer (in ESRI.ArcGISExplorer.dll) Version: 2.0.0.1500 (2.0.0.1500)
Syntax
Field Value
The current set of GeographicTransformations used by the MapDisplay.
Remarks
Examples
The code below shows how you can create a list of suitable GeographicTransformations
for projecting geometries between two specific coordinate systems; one being the coordinate
system of the current display - 2D or 3D, and the other being the coordinate system of a Layer, newLayer.
Before attempting to add the new transformation to the CurrentGeographicTransformations collection of the
Map, the FindTransform method is used to find out if there is an existing transformation for that
coordinate system pair, as only one transformation can be specified for each unique pair of coordinate systems.
Assuming the newLayer variable refers to a layer in the map, then this code ensures the
transformation will be used when the map is displayed in the current mode (2D or 3D),
increasing the accuracy of the reprojection of the data.
The code also assumes you have using statements for the Geometry and Mapping namespaces.
CopyC#
ESRI.ArcGISExplorer.Mapping.MapDisplay disp = ESRI.ArcGISExplorer.Application.Application.ActiveMapDisplay;
CoordinateSystem csDisp = disp.CurrentCoordinateSystem;
CoordinateSystem csLayer = newLayer.CoordinateSystem;
GeographicTransformationCollection transforms = disp.CurrentGeographicTransformations;
GeographicTransformation existingTransform = transforms.FindCurrentTransform(csDisp, csLayer);
if (existingTransform == null)
{
System.Collections.Generic.IList<GeographicTransformation> suitableTrans = GeographicTransformation.GetTransformations(csDisp, csLayer);
if (suitableTrans.Count > 0)
{
transforms.Add(suitableTrans[0]);
MessageBox.Show("Added the transformation " + suitableTrans[0].Name + Environment.NewLine +
" between " + csLayer.Name + " and " + csDisp.Name,
"Using New GeographicTransformation", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("No GeographicTransformations found between " + csLayer.Name + " and " + csDisp.Name,
"No Suitable GeographicTransformations", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
{
MessageBox.Show("Already using the transformation " + existingTransform.Name + Environment.NewLine +
" between " + csLayer.Name + " and " + csDisp.Name,
"Existing GeographicTransformation", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
CopyVB.NET
Dim disp As ESRI.ArcGISExplorer.Mapping.MapDisplay = ESRI.ArcGISExplorer.Application.Application.ActiveMapDisplay
Dim csDisp As CoordinateSystem = disp.CurrentCoordinateSystem
Dim csLayer As CoordinateSystem = newLayer.CoordinateSystem
Dim transforms As GeographicTransformationCollection = disp.CurrentGeographicTransformations
Dim existingTransform As GeographicTransformation = transforms.FindCurrentTransform(csDisp, csLayer)
If existingTransform Is Nothing Then
Dim suitableTrans As System.Collections.Generic.IList(Of GeographicTransformation) = GeographicTransformation.GetTransformations(csDisp, csLayer)
If suitableTrans.Count > 0 Then
transforms.Add(suitableTrans(0))
MessageBox.Show("Added the transformation " & suitableTrans(0).Name & Environment.NewLine & _
" between " & csLayer.Name & " and " & csDisp.Name, "Using New GeographicTransformation", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("No GeographicTransformations found between " & csLayer.Name & " and " & csDisp.Name, _
"No Suitable GeographicTransformations", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Already using the transformation " & existingTransform.Name & Environment.NewLine & _
" between " & csLayer.Name & " and " & csDisp.Name, _
"Existing GeographicTransformation", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
See Also