转换-geojson-topojson-csharp

GeoJSON 用于表示具有非空间特征的地理特征。然而,TopoJSON 是利用拓扑的 GeoJSON 的扩展。您可以根据您的要求将 GeoJSON 转换为 TopoJSON 以及将 TopoJSON 转换为 GeoJSON。让我们详细探讨以下用例:

GeoJSON 和 TopoJSON 相互转换 – C# .NET API 安装

Aspose.GIS for .NET API 可用于操作或转换地理数据。您可以通过从 Downloads 部分下载其 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 文档 了解更多信息。如有任何疑问或疑虑,请随时在 免费支持论坛 上给我们回信。

也可以看看