轉換-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。它解釋了兩種可供選擇的轉換方法:

// 通過量化將 GeoJSON 轉換為 TopoJSON - 將雙精度轉換為整數以減小文件大小。

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

// 初始化 ConversionOptions 類對象
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // 有兩種設置量化參數的方法——使用 Transform 屬性或
        // 與量化數。這裡我們指定量化數。
        // 量化數指定結果中每個維度的可表達值的數量
        // 坐標。
        QuantizationNumber = 100_000,

        // 或者,可以設置“轉換”屬性(但不能與量化數同時設置)。
        // 有關變換對象和量化的更多詳細信息,請參閱 TopoJSON 規範。
        //
        // 變換 = 新的 TopoJsonTransform(
        //     x翻譯:0,
        //     y翻譯: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 文檔 了解更多信息。如有任何疑問或疑慮,請隨時通過 免費支持論壇 給我們回信。

也可以看看