FAQ
データセットのエクスポート

ナレッジ番号:5552 | 登録日:2023/07/27 | 更新日:2024/11/21

概要

このトピックでは、既存のデータセット(フィーチャクラス)をさまざまな形式のデータセットにエクスポートする方法を示します。別のデータセットとしてエクスポートするには、ExportOperation クラスか FeatureDataConverter クラスを使用します。ExportOperation クラスは ArcGIS for Desktop のみ使用することができ、FeatureDataConverter クラスは ArcGIS Destkop のほかにも、 ArcGIS Engine や ArcGIS Enterprise で使用することができます。

最初に出力先を示すワークスペースとデータセットを Name オブジェクトで作成します。ワークスペースは WorkspaceName オブジェクト、データセットはフィーチャクラスの場合 FeatureClassName オブジェクトを使用します。ワークスペースのフォーマットによって IWorkspaceName::WorkspaceFactoryProgID が異なります。

サンプル コード

このサンプル コードでは、ExportFeatureClass メソッドと ConvertFeatureClass メソッドの2つのメソッドでフィーチャクラスをシェープファイルにエクスポートする方法を示します。

void 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);
}
Sub 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

メタデータ

機能

種類

製品