C# でシェープファイルを KML に変換する

さまざまなシステムでサポートされている多くの形式で地理データを利用できる場合があります。場合によっては、地理データを ESRI Shapefile (SHP) 形式から Keyhole Markup Language (KML) 形式にエクスポートする必要がある場合があります。 Shapefile 形式は、地理情報の表示に使用される最も一般的な ESRI の地理空間ベクトル データ形式の 1 つです。 KML は XML ベースの形式で、地理データを非 GIS ユーザーと共有するために使用されます。 KML 形式は、Google Earth または Google マップで地理データを表示するために使用されます。この記事では、C# でシェープファイルを KML に変換する方法を学習します。

この記事では、次のトピックについて説明します。

  1. C# シェープファイルから KML へのコンバーター
  2. シェープファイルを KML に変換する手順
  3. シェープファイルを KML にエクスポート

C# シェープファイルから KML へのコンバーター API - 無料ダウンロード

シェープファイルを KML に変換するには、Aspose.GIS for .NET API を使用します。 ArcGISArcMapQGISGoogle Earth などのソフトウェアを必要とせずに、シェープファイルを KML にエクスポートできます。この API では、マップのレンダリング、サポートされているファイル形式 で利用可能な地理データの作成、読み取り、および変換も可能です。

API の ConversionOptions クラスは、フォーマット間でデータを変換するためのオプションを提供します。 SpatialReferenceSystem クラスは、座標を地球上の場所にマッピングする際に使用するさまざまな空間参照系のリストを提供します。 API でベクター レイヤーを表す VectorLayer クラスがあります。このクラスの Convert(string, FileDriver, string, FileDriver, ConversionOptions) メソッドは、レイヤーを別の形式に変換します。

APIのDLLを ダウンロードするか NuGet でインストールしてください。

PM> Install-Package Aspose.GIS

C# でシェープファイルを KML に変換する方法

以下の手順に従って、Aspose.GIS for .NET を使用してシェープファイルを KML に簡単に変換できます。

  • Wgs84 空間参照を宛先レイヤーに割り当てます。
  • ファイル形式を SHP から KML にロードして変換します。

次に、C# でこれらの手順を実行して、シェープファイル ファイルを KML 形式に変換する方法を見てみましょう。

C# でシェープファイルを KML にエクスポート

シェープファイルから KML にデータをエクスポートするには、次の手順に従ってください。

  1. ConversionOptions クラスのインスタンスを初期化します。
  2. DestinationSpatialReferenceSystem を Wgs84 として設定します。
  3. 最後に、VectorLayer.Convert() メソッドを呼び出して、ソース シェープファイルを KML に変換します。

次のコード サンプルは、C# を使用してシェープファイルを KML に変換する方法を示しています。

// このコード例は、C# でシェープファイルを KML に変換する方法を示しています。
// 作業ディレクトリ
string dataDir = @"C:\Files\GIS\";

// 必要に応じて変換設定を指定します。オプションです。
ConversionOptions options = null;

// 宛先レイヤーが Wgs84 空間参照をサポートしていない場合、変換でエラーが発生する可能性があります。だからチェックする必要があります。
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    // Wgs84 を宛先レイヤーに割り当てます
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// シェープファイルを KML に変換します。
VectorLayer.Convert(dataDir + "Shapefile.shp", Drivers.Shapefile, dataDir + "destination.kml", Drivers.Kml, options);

無料ライセンスを取得する

無料の一時ライセンスを取得して、評価制限なしでライブラリを試すことができます。

結論

この記事では、シェープファイルを C# で KML に変換する方法を学びました。プログラムで変換オプションを定義する方法も見てきました。また、ドキュメント を使用して、他のいくつかの GIS ファイル フォーマットを操作する方法を調べたり、Aspose.GIS for .NET API の詳細を確認したりできます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目