Skip To Content

CoordinateSystem.DatumTransformationAdd (.NET)

La méthode CoordinateSystem.DatumTransformationAdd ajoute une transformation de datum au dessin actuel. Si la transformation de datum (les systèmes de coordonnées from et to) existe déjà, elle est remplacée. Cette méthode renvoie la définition de transformation de datum ajoutée.

Remarque :

Les transformations de datum ne peuvent pas être ajoutées lorsque le dessin contient des couches d’entités Web.

Déclaration

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

Paramètres

TypeNomDescriptionRequis

Document

doc

Document AutoCAD sur lequel intervenir.

required

chaîne

fromCS

Identifiant connu (WKID) de système de coordonnées ou texte connu (WKT) valide du système de coordonnées Esri sous forme de chaîne.

required

chaîne

toCS

WKID ou WKT valide du système de coordonnées Esri sous forme de chaîne.

required

IEnumerable<(chaîne Direction, chaîne Step)>

transformationSteps

Collection de tuples nommés dans laquelle la première valeur correspond à la valeur Direction et la deuxième valeur à la valeur Step. La valeur Direction est la direction de l’étape, "Forward" ou "Reverse", dans laquelle l’étape de transformation est appliquée. La valeur Step désigne le WKID ou WKT de l’étape de transformation sous forme de chaîne.

required

Retours

TypeDescription

Dictionary<chaîne, objet>

Définition de la transformation de datum ajoutée sous forme de dictionnaire. Le dictionnaire contient les clés suivantes : From, To et Steps. Les clés From et To contiennent des valeurs de chaîne représentant les systèmes de coordonnées. La valeur de la clé Steps est une collection de dictionnaires contenant les étapes de la transformation du système de coordonnées. Chaque dictionnaire d’étape de transformation contient les clés Step et Direction. La clé Step comporte une valeur de l’étape sous forme de chaîne et la clé Direction indique l’ordre, "Forward" ou "Reverse", dans lequel l’étape de transformation est appliquée.

Remarques sur les conditions d’erreur

Si un paramètre n’est pas valide ou si des couches d’entités Web sont présentes dans le dessin, cette méthode peut générer une exception ou renvoyer null.

Utilisation

Lors de la création d’une transformation de datum composite, l’ordre de chaque étape doit être correct. Dans l’Exemple 2 ci-dessous, 108355 est la première étape et 108282, la deuxième et ultime étape. La direction doit être indiquée en tant que "Forward" ou "Reverse".

ArcGIS pour AutoCAD ne valide pas les étapes de transformation indiquées. Si une partie de la méthode définie n’est pas valide ou est appliquée dans la mauvaise direction, ArcGIS pour AutoCAD peut afficher les couches de manière incorrecte.

Exemple 1

Ajouter une transformation de datum en une seule étape dans le dessin actuel entre les systèmes de coordonnées d’origine et de destination signalés par le WKID, étape appliquée vers l’avant et afficher la définition de transformation de datum associée.

// 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
*/

Exemple 2

Ajouter une transformation de datum composite dans le dessin actuel entre les systèmes de coordonnées d’origine et de destination signalés par le WKID, les étapes étant appliquées vers l’arrière et afficher la définition de transformation de datum associée.

// 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
*/

Voir aussi

esri_coordsys_DatumTransformations_set : fonction AutoLISP qui définit une transformation de datum dans le dessin actuel.