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
| Type | Nom | Description | Requis |
|---|---|---|---|
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
| Type | Description |
|---|---|
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.
Vous avez un commentaire à formuler concernant cette rubrique ?