Skip To Content

CoordinateSystem.DatumTransformationAdd (.NET)

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>

追加された測地基準系変換の定義をディクショナリーとして示したもの。 ディクショナリーには、次のキーが含まれています: FromToStepsFrom および 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 関数。