convert-geojson-topojson-csharp

GeoJSONは、非空間的特徴を持つ地理的特徴を表すために使用されます。一方、TopoJSONは、トポロジを利用するGeoJSONの拡張機能です。要件に応じて、GeoJSONをTopoJSONに変換したり、TopoJSONをGeoJSONに変換したりできます。次のユースケースを詳しく見ていきましょう。

GeoJSONとTopoJSONの相互変換– C#.NET APIのインストール

Aspose.GIS for .NET APIを使用して、地理データを操作または変換できます。 ダウンロードセクションからDLLファイルをダウンロードするか、次のインストールコマンドを使用してNuGetギャラリーからAPIを簡単に構成できます。

PM> Install-Package Aspose.GIS

C#を使用してプログラムでGeoJSONをTopoJSONに変換する

GeoJSONからTopoJSONへのファイル変換は、地理空間機能をエンコードし、ファイルサイズが小さいため便利です。トポロジーと冗長性の排除により、ファイルサイズは小さくなります。さらに、共有トポロジがない場合でも、GeoJSONファイル形式の浮動小数点エンコーディングよりも修正精度エンコーディングの方がはるかに効率的です。次の手順で、GeoJSONをTopoJSONに変換できます。

  1. 入力GeoJSONファイルをロードします
  2. GeoJSONをTopoJSONに変換する

次のコードスニペットは、C#を使用してプログラムでGeoJSONをTopoJSONに変換する方法を示しています。

// 入力GeoJSONファイルをロードします
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// GeoJSONをTopoJSONに変換します
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

C#を使用した量子化でGeoJSONをTopoJSONに変換する

GeoJSONからTopoJSONへの変換は、固定精度の効率とファイルサイズの小ささから人気があります。さらに、量子化は座標の精度を低下させます。その結果、座標を整数で表すことにより、ファイルサイズを最適化します。したがって、以下の手順で量子化を使用してGeoJSONをTopoJSONに変換できます。

  1. ConversionOptionsクラスオブジェクトを初期化します
  2. 量子化番号を指定する
  3. または、Transformプロパティを設定します
  4. 量子化を使用してGeoJSONをTopoJSONに変換する

以下のコードは、GeoJSONを量子化を使用してTopoJSONに変換する方法を示しています。変換の2つの代替アプローチについて説明します。

// 量子化を使用してGeoJSONをTopoJSONに変換します-ファイルサイズを縮小するためにdoubleを整数に変換します。

string SampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSampleWithQuantization_out.topojson";

// ConversionOptionsクラスオブジェクトを初期化します
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // 量子化パラメータを設定する方法は2つあります-Transformプロパティまたは
        // 量子化数付き。ここでは、量子化数を指定します。
        // 量子化数は、結果の次元ごとの表現可能な値の数を指定します
        // 座標。
        QuantizationNumber = 100_000,

        // または、「変換」プロパティを設定することもできます(ただし、量子化数と同時に設定することはできません)。
        // 変換オブジェクトと量子化の詳細については、TopoJSON仕様を参照してください。
        //
        // Transform = new TopoJsonTransform(
        //     xTranslate:0、
        //     yTranslate:0、
        //     xScale:0.0001000010000100001、
        //     yScale:0.0001000010000100001)、
    }
};

VectorLayer.Convert(SampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson, options);

C#でプログラムによりTopoJSONをGeoJSONに変換する

Aspose.GIS for .NET APIは、TopoJSONからGeoJSONへのファイル変換をサポートしています。したがって、この機能を.NETアプリケーションに追加できます。さらに、GeoJSONファイルは通常、トポロジを必要としないジオメトリのサーバー側操作で優先されます。 TopoJSONからGeoJSONへの変換については、次の手順に従うことができます。

  1. 入力TopoJSONファイルをロードします
  2. TopoJSONからGeoJSONへの変換

次のコードは、C#を使用してプログラムでTopoJSONをGeoJSONに変換する方法を示しています。

// 入力TopoJSONファイルをロードします
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// TopoJSONをGeoJSONファイルに変換する
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

結論

この記事では、GeoJSONとTopoJSONのファイル形式の違いと適合性について学習しました。さらに、要件に応じてそれらを相互に変換する方法を検討しました。 Aspose.GIS for .NET APIは、アプリケーションで相互変換を効率的かつ迅速に実行できます。さらに、APIドキュメントにアクセスして詳細を確認できます。ご不明な点やご不明な点がございましたら、無料サポートフォーラムまでお気軽にご連絡ください。

関連項目