CoordinateSystem.DatumTransformationAdd メソッドは、現在のドローイングに測地基準系変換を追加します。 測地基準系変換 (from 座標系および to 座標系) がすでに存在する場合は、上書きされます。 このメソッドは、追加された測地基準系変換の定義を返します。
注意:
ドローイングに Web フィーチャ レイヤーが含まれている場合、測地基準系変換を追加できません。
宣言
public Dictionary<string, object> Esri.ArcGISForAutoCAD.CoordinateSystem.DatumTransformationAdd(Document doc, string fromCS, string toCS, IEnumerable<(string Direction, string Step)> transformationSteps)
パラメーター
| タイプ | 名前 | 説明 | 必須 |
|---|---|---|---|
ドキュメント | doc | 操作対象の AutoCAD ドキュメント。 | 必須 |
string | fromCS | Esri 座標系の文字列として有効な WKID (Well-Known 座標系 ID) または WKT (Well-Known Text)。 | 必須 |
string | toCS | Esri 座標系の文字列として有効な WKID または WKT。 | 必須 |
IEnumerable<(string Direction, string Step)> | transformationSteps | 最初の値が Direction 値、2 番目の値が Step 値である名前付きタプルのコレクション。 Direction 値は、変換ステップが適用されるステップの方向 ("Forward" または "Reverse" のいずれか) です。 Step 値は、変換ステップの WKID または WKT を文字列として表します。 | 必須 |
リターン
| タイプ | 説明 |
|---|---|
Dictionary<string, object> | 追加された測地基準系変換の定義をディクショナリーとして示したもの。 ディクショナリーには、次のキーが含まれています: From、To、Steps。 From および To キーには、座標系を表す文字列値が含まれています。 Steps キーの値は、座標系変換ステップのディクショナリーのコレクションです。 各変換ステップ ディクショナリーには、Step および Direction キーが含まれています。 Step キーにはステップの値が文字列として含まれ、Direction キーは変換ステップが適用される順序 ("Forward" または "Reverse") を示します。 |
エラー条件に関する注記
パラメーターが無効である場合や、ドローイングに Web フィーチャ レイヤーが存在する場合、このメソッドは例外をスローするか、null を返すことがあります。
使用法
複合測地基準系変換を作成する際、各ステップの順序は正しい必要があります。 以下の例 2 で、108355 は最初のステップ、108282 は 2 番目で最終ステップです。 方向は "Forward" または "Reverse" として指定する必要があります。
ArcGIS for AutoCAD は、指定した変換ステップの検証を行いません。 set メソッドの一部が無効か、誤った順序で適用された場合、ArcGIS for AutoCAD でレイヤーが不正に描画される可能性があります。
例 1
WKID で示される変換元の座標系と変換先の座標系との間で、順方向で適用される単一ステップの測地基準系変換を現在のドローイングに追加し、その測地基準系変換の定義を出力します。// 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
*/
例 2
WKID で示される変換元の座標系と変換先の座標系との間で、逆方向で適用される手順を使用して、複合測地基準系変換を現在のドローイングに追加し、その測地基準系変換の定義を出力します。// 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
*/
次もご参照ください。
esri_coordsys_DatumTransformations_set - 現在のドローイングで測地基準系変換を設定する AutoLISP 関数。