Skip To Content

CoordinateSystem.DatumTransformationAdd (.NET)

El método CoordinateSystem.DatumTransformationAdd agrega una transformación de datum al dibujo actual. Si la transformación de datum (sistemas de coordenadas from y to) ya existe, se sobrescribe. Este método devolverá la definición de transformación de datum agregada.

Nota:

Las transformaciones de datum no pueden agregarse cuando el dibujo contiene capas de entidades web.

Declaración

public Dictionary<string, object> Esri.ArcGISForAutoCAD.CoordinateSystem.DatumTransformationAdd(Document doc, string fromCS, string toCS, IEnumerable<(string Direction, string Step)> transformationSteps)

Parámetros

TipoNombreDescripciónRequerido

Documento

doc

Documento de AutoCAD sobre el que se va a actuar.

obligatorio

cadena

fromCS

Identificador del sistema de coordenadas (WKID) conocido válido o texto conocido (WKT) del sistema de coordenadas de Esri como una cadena de caracteres.

obligatorio

cadena

toCS

WKID válido o WKT del sistema de coordenadas de Esri como cadena de caracteres.

obligatorio

IEnumerable<(string Direction, string Step)>

transformationSteps

Conjunto de tuplas nominal en la que el primer valor es el valor de Direction y el segundo es el valor de Step. El valor de Direction es la dirección del paso, "Forward" o "Reverse", al que se aplicará el paso de transformación. El valor de Step es el WKID o WKT del paso de transformación en forma de cadena de caracteres.

obligatorio

Devoluciones

TipoDescripción

Diccionario<string, object>

Definición de la transformación de datum agregada como diccionario. El diccionario tiene las claves siguientes: From, To y Steps. Las claves From y To tienen valores de cadena de caracteres que representan los sistemas de coordenadas. El valor de la clave Steps es un conjunto de diccionarios de pasos de transformación de sistemas de coordenadas. Cada diccionario de pasos de transformación tiene claves Step y Direction. La clave Step tiene un valor del paso como cadena de caracteres y la clave Direction indica el orden en que se aplica el paso de transformación, ya sea "Forward" o "Reverse".

Observaciones sobre las condiciones de error

Este método puede generar una excepción o devolver null si un parámetro no es válido o hay capas web en el dibujo.

Uso

Al crear una transformación de datum compuesta, el orden de cada paso debe ser el correcto. Para el ejemplo 2 siguiente, 108355 es el primer paso y 108282 es el segundo y último paso. La dirección debe proporcionarse como "Forward" o "Reverse".

ArcGIS for AutoCAD no valida los pasos de transformación proporcionados. Si alguna parte del método definido no fuera válida o se aplicara en el orden erróneo, ArcGIS for AutoCAD puede dibujar capas incorrectamente.

Ejemplo 1

Agregue una transformación de datum de un solo paso al dibujo actual entre los sistemas de coordenadas de origen y destino indicados por el WKID, aplicada en orden directo, e imprima su definición de transformación de datum.

// Initialize
var doc = Application.DocumentManager.MdiActiveDocument;

// Add the datum transformation
var transformationSteps = new List<(string, string)> { ("Forward", "1580") };
var newDT = Esri.ArcGISForAutoCAD.CoordinateSystem.DatumTransformationAdd(doc, "2882", "3857", transformationSteps);

// Print the datum transformation definition
doc.Editor.WriteMessage("\nFrom {0}: To {1}", newDT["From"], newDT["To"]);
doc.Editor.WriteMessage("\n");
foreach (var dict in newDT["Steps"] as List<Dictionary<string, object>>)
{
  foreach (var kvp in dict)
  {
    doc.Editor.WriteMessage("\t{0}: {1}\n", kvp.Key, kvp.Value.ToString());
  }
}

/* Example output 
From 2882: To 3857
 Direction: Forward
 Step: 1580
*/

Ejemplo 2

Agregue una transformación de datum compuesta al dibujo actual entre los sistemas de coordenadas de origen y destino indicados por el WKID, con los pasos aplicados en orden inverso, e imprima su definición de transformación de datum.

// Initialize
var doc = Application.DocumentManager.MdiActiveDocument;

// Add the datum transformation
var transformationSteps = new List<(string, string)> { ("Reverse", "108355"), ("Reverse", "108282") };
var newDT = Esri.ArcGISForAutoCAD.CoordinateSystem.DatumTransformationAdd(doc, "6425", "3857", transformationSteps);

// Print the datum transformation definition
doc.Editor.WriteMessage("\nFrom {0}: To {1}", newDT["From"], newDT["To"]);
doc.Editor.WriteMessage("\n");
foreach (var dict in newDT["Steps"] as List<Dictionary<string, object>>)
{
  foreach (var kvp in dict)
  {
    doc.Editor.WriteMessage("\t{0}: {1}\n", kvp.Key, kvp.Value.ToString());
  }
}

/* Example output 
From 6425: To 3857
 Direction: Reverse
 Step: 108355
 Direction: Reverse
 Step: 108282
*/

Consulte también

esri_coordsys_DatumTransformations_set: función de AutoLISP para que estblece una transformación de datum en el dibujo.