FAQ
データセットのエクスポート
ナレッジ番号:5552 | 登録日:2023/07/27 | 更新日:2024/12/02
概要
このトピックでは、既存のデータセット(フィーチャクラス)をさまざまな形式のデータセットにエクスポートする方法を示します。別のデータセットとしてエクスポートするには、ExportOperation クラスか FeatureDataConverter クラスを使用します。ExportOperation クラスは ArcGIS for Desktop のみ使用することができ、FeatureDataConverter クラスは ArcGIS Destkop のほかにも、 ArcGIS Engine や ArcGIS Enterprise で使用することができます。
最初に出力先を示すワークスペースとデータセットを Name オブジェクトで作成します。ワークスペースは WorkspaceName オブジェクト、データセットはフィーチャクラスの場合 FeatureClassName オブジェクトを使用します。ワークスペースのフォーマットによって IWorkspaceName::WorkspaceFactoryProgID が異なります。
サンプル コード
このサンプル コードでは、ExportFeatureClass メソッドと ConvertFeatureClass メソッドの2つのメソッドでフィーチャクラスをシェープファイルにエクスポートする方法を示します。
C# 1234567891011121314151617181920212223242526272829303132void
ExportData()
{
IDataset pDataset = <フィーチャクラス>;
//入力フィーチャクラスの名前を IDatasetName 型で取得
IDatasetName pInputDatasetName = pDataset.FullName;
//出力先のパスを設定
IWorkspaceName pOutputWorkspaceName =
new
WorkspaceNameClass();
pOutputWorkspaceName.PathName =
@"D:\Workspace"
;
//ワークスペースのフルパス名
//ワークスペースの種類に応じて WorkspaceFactoryProgID を変更
//pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory";
//pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.FileGDBWorkspaceFactory";
//pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesOleDB.OLEDBWorkspaceFactory";
//pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.SdeWorkspaceFactory";
pOutputWorkspaceName.WorkspaceFactoryProgID =
"esriDataSourcesFile.ShapefileWorkspaceFactory"
;
//pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesOleDB.TextFileWorkspaceFactory";
//出力名を設定
IDatasetName pOutputFeatureClassName =
new
FeatureClassNameClass();
pOutputFeatureClassName.Name =
"Output"
;
//出力フィーチャクラス名
pOutputFeatureClassName.WorkspaceName = pOutputWorkspaceName;
//ExportOperation を使用したエクスポートを実行する場合
IExportOperation pExportOperation =
new
ExportOperationClass();
pExportOperation.ExportFeatureClass(pInputDatasetName,
null
,
null
,
null
, (IFeatureClassName)pOutputFeatureClassName, 0);
//FeatureDataConverter を使用したエクスポートを実行する場合
IFeatureDataConverter pFeatureDataConverter =
new
FeatureDataConverterClass();
pFeatureDataConverter.ConvertFeatureClass((IFeatureClassName)pInputDatasetName,
null
,
null
, (IFeatureClassName)pOutputFeatureClassName,
null
,
null
,
""
, 1000, 0);
}
Visual Basic 123456789101112131415161718192021222324252627282930Sub
ExportData()
Dim
pDataset
As
IDataset = <フィーチャクラス>
'入力 DatasetName
Dim
pInputDatasetName
As
IDatasetName = pDataset.FullName
'出力 WorkspaceName
Dim
pOutputWorkspaceName
As
IWorkspaceName =
New
WorkspaceNameClass()
pOutputWorkspaceName.PathName =
"D:\Workspace"
'ワークスペースのフルパス名
'ワークスペースの種類に応じて WorkspaceFactoryProgID を変更
'pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory"
'pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.FileGDBWorkspaceFactory"
'pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesOleDB.OLEDBWorkspaceFactory"
'pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.SdeWorkspaceFactory"
pOutputWorkspaceName.WorkspaceFactoryProgID =
"esriDataSourcesFile.ShapefileWorkspaceFactory"
'pOutputWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesOleDB.TextFileWorkspaceFactory"
'出力 DatasetName
Dim
pOutputFeatureClassName
As
IDatasetName =
New
FeatureClassNameClass()
pOutputFeatureClassName.Name =
"Output"
'出力フィーチャクラス名
pOutputFeatureClassName.WorkspaceName = pOutputWorkspaceName
'ExportOperation を使用したエクスポートを実行する場合
Dim
pExportOperation
As
IExportOperation =
New
ExportOperationClass()
pExportOperation.ExportFeatureClass(pInputDatasetName,
Nothing
,
Nothing
,
Nothing
, pOutputFeatureClassName, 0)
'FeatureDataConverter を使用したエクスポートを実行する場合
Dim
pFeatureDataConverter
As
IFeatureDataConverter =
New
FeatureDataConverterClass()
pFeatureDataConverter.ConvertFeatureClass(pInputDatasetName,
Nothing
,
Nothing
, pOutputFeatureClassName,
Nothing
,
Nothing
,
""
, 1000, 0)
End
Sub
メタデータ
種類
機能
製品