ファブリック インポータ エンジンの動作変更
このトピックは、ArcGIS for Desktop Standard および ArcGIS for Desktop Advanced にのみ該当します。
ArcObjects を使用してレジストリ設定を指定すると、パーセル ファブリック インポータ エンジンの動作を制御できます。曲線の計算方法、インポート時に内部で処理する土地区画の数などを指定できます。また、データ移行ログ ファイルにインポートの開始時刻と終了時刻を表示することもできます。
曲線の移行の制御(ArcObjects)
曲線の計算の制御
土地区画データをパーセル ファブリックへ移行する際、曲線の計算方法を制御できます。デフォルトでは、移行した土地区画のラインを使用して曲線が計算され、表示されます。パーセルを開くと、これらの曲線の計測値に基づいて曲線が表示されます。
移行を行っている間に、曲線が計算されて 2 点間に表示されるように、もしくは、計算されて 1 点で表示されるように設定することが可能です。2 点間に表示される曲線は記録された値を使用しますが、曲線は常に 2 点間にあります。1 点を使用して表示される曲線は、始点とその計測値のみを使用します。記録値を使用して、曲線は 1 つの点から「同様に」表示されるので、データセット内の不正な曲線やその他の曲線の問題を見つけるには、点を使用して曲線を作成することをお勧めします。
データ移行における曲線の計算方法の設定は、ArcObjects の IDECadastralFabric3 インタフェースのプロパティ セットを設定します。
- IDECadastralFabric3 and IPropertySet インタフェースを宣言します。
- IDECadastralFabric3 インタフェースをデータの移行先となる地籍ファブリックに設定します。
- Esri プロパティ セットを新規作成します。
- 曲線の計算方法を設定します。
パーセル ラインの形状から曲線を作成(デフォルト)
object COGOshapetype = "COGOShapeStorage"; m_propset.SetProperty("COGOShape",COGOshapetype);
2 つの点を使用して曲線を作成
object COGOshapetype = "ConstructionUsingTwoPoints"; m_propset.SetProperty("COGOShape",COGOshapetype);
1 つの点を使用して曲線を作成
object COGOshapetype = "ConstructionUsingOnePoint"; m_propset.SetProperty("COGOShape",COGOshapetype);
- IDECadastralFabric3 インタフェースのプロパティ セットを設定します。
private IDECadastralFabric3 m_DECadastralFabric;
private IPropertySet m_propset;
m_DECadastralFabric = (IDECadastralFabric3) m_CadFabric;
(m_CadFabric = ICadastralFabricLayer.CadastralFabric)
m_propset = new PropertySetClass();
m_DECadastralFabric.SetPropertySet
(esriCadastralPropertySetType.esriCadastralPropSetImporterLoading, m_propset);
長い半径ラインの設定
パーセルのグループでファブリックの最小二乗アジャストを実行する場合、半径が長くて曲がり方が緩やかな曲線があると、調整が失敗する原因になります。これは、大変緩やかな曲線に対してわずかな調整を行うと、長い半径をもつ緩やかな曲線の中心点が大幅に調整されることになるためです。ArcObjects の IDECadastralFabric3 インタフェースのプロパティ セットを使用して、半径が長いラインがファブリック アジャストの結果に影響を及ぼさないようにプロパティを設定できます。プロパティでは、指定した距離値より半径が大きいラインに対して正確度カテゴリ 7 が割り当てられます。ラインもしくはパーセルに正確度 7 が適用された場合、ファブリック アジャストの結果に影響を及ぼすことはありません。
- IDECadastralFabric3 and IPropertySet インタフェースを宣言します。
- IDECadastralFabric3 インタフェースをデータの移行先となる地籍ファブリックに設定します。
- Esri プロパティ セットを新規作成します。
- 正確度カテゴリ 7 が割り当てられる前に半径ラインが取り得る最大距離を設定します(デフォルトは 500 メートル)。
- IDECadastralFabric3 インタフェースのプロパティ セットを設定します。
private IDECadastralFabric3 m_DECadastralFabric;
private IPropertySet m_propset;
m_DECadastralFabric = (IDECadastralFabric3) m_CadFabric;
(m_CadFabric = ICadastralFabricLayer.CadastralFabric)
m_propset = new PropertySetClass();
m_propset.SetProperty("assignAccCat7ToRadialLineGreaterThanXMeters", 550);
m_DECadastralFabric.SetPropertySet
(esriCadastralPropertySetType.esriCadastralPropSetImporterLoading, m_propset);
頂点が密集した線分を変換
移行対象のデータに細かい線分の集まりが含まれている場合、それらを計算された許容値内の曲線に変換することができます。ArcObjects の IDECadastralFabric3 インタフェースのプロパティ セットを使用して、細かい線分の集まりの変換を制御するために 2 つのプロパティを設定します。最初のプロパティは、指定されたファクタです。このファクタに現在の XY 許容値(クラスタ許容値)が乗算され、算出された許容値が求められます。細かい線分の集まりの各頂点と曲線との距離が算出された許容値未満の場合、細かい線分の集まりは曲線に変換されます。2 つめのプロパティは、算出された許容値の上限を定義します。算出された許容値が大きい場合、2 つめのプロパティを使用して、算出された許容値の最大許容値を定義できます。
細かい線分の集まりが指定した許容値内に曲線を形成しない場合、その線分はライン(自然境界)としてインポートされます。細かい線分の集まりに存在する頂点が 3 個以下である場合、その線分は曲線としてインポートされず、ライン(自然境界)としてインポートされます。
- IDECadastralFabric3 and IPropertySet インタフェースを宣言します。
- IDECadastralFabric3 インタフェースをデータの移行先となる地籍ファブリックに設定します。
- Esri プロパティ セットを新規作成します。
- XY TOLERANCE(クラスタ許容値)と乗算されるファクタを定義します。デフォルトは 100 です。
- 算出される許容値の最大許容値を定義します。デフォルト値は 0.5 メートルです。
- IDECadastralFabric3 インタフェースのプロパティ セットを設定します。
private IDECadastralFabric3 m_DECadastralFabric;
private IPropertySet m_propset;
m_DECadastralFabric = (IDECadastralFabric3) m_CadFabric;
(m_CadFabric = ICadastralFabricLayer.CadastralFabric)
m_propset = new PropertySetClass();
m_propset.SetProperty("CurveDetectOffsetXMultipliedByDatasetTolerance", 200);
m_propset.SetProperty("CurveDetectOffsetMaxMetersTolerance", 0.7);
m_DECadastralFabric.SetPropertySet
(esriCadastralPropertySetType.esriCadastralPropSetImporterLoading, m_propset);
インポータの設定(レジストリ)
隣接するパーセルの内部処理数を設定
インポート処理中、パーセルは 500 レコード単位で内部的にバッチ処理されます。コンピュータ システムの処理速度に応じて、この内部バッチ処理数を調整できます。
以下の手順に従って、内部的にバッチ処理する個数を変更します。
- Windows の [スタート] メニューをクリックし、[ファイル名を指定して実行] をクリックします。
- [ファイル名を指定して実行] ダイアログ ボックスで、「Regedit」と入力します。
- HKEY_CURRENT_USER \\Software\\ESRI\\Desktop10.1\\ArcMap\\Cadastral に移動します。
- [Cadastral] フォルダを右クリックし、[新規] をポイントして、[DWORD 値] をクリックします。
- DWORD 名として、「MaxBatchParcelsToRead」と入力します。
- [DWORD] をダブルクリックして編集します。
- [10 進数] オプションを選択します。
- [値のデータ] フィールドに、1 ~ 995 の任意の値を入力します。デフォルトは 500 です。
- [OK] をクリックして、レジストリ キーを作成します。
インポートの開始時刻および終了時刻をログ ファイルに表示
WriteExtendedLogfileTimeInfo レジストリ キーを使用して、データ移行ログ ファイルに開始時刻と終了時刻を表示できます。開始時刻と終了時刻は、ある特定数の土地区画をパーセル ファブリックへインポートするのに必要な時間を監視するのに便利です。デフォルトでは、開始時刻と終了時刻がログ ファイルに表示されません。
- Windows の [スタート] メニューをクリックし、[ファイル名を指定して実行] をクリックします。
- [ファイル名を指定して実行] ダイアログ ボックスで、「Regedit」と入力します。
- HKEY_CURRENT_USER \\Software\\ESRI\\Desktop10.1\\ArcMap\\Cadastral に移動します。
- [Cadastral] フォルダを右クリックし、[新規] をポイントして、[DWORD 値] をクリックします。
- DWORD 名として、「writeExtendedLogfileTimeInfo」と入力します。
- [DWORD] をダブルクリックして編集します。
- [10 進数] オプションを選択します。
- [値のデータ] フィールドで、True の場合は「1」、False の場合は「2」を入力します。
- [OK] をクリックして、レジストリ キーを作成します。