GeoJSON 用于表示具有非空间特征的地理特征。然而,TopoJSON 是利用拓扑的 GeoJSON 的扩展。您可以根据您的要求将 GeoJSON 转换为 TopoJSON 以及将 TopoJSON 转换为 GeoJSON。让我们详细探讨以下用例:
- GeoJSON 和 TopoJSON 相互转换 – C# .NET API 安装
- 使用 C# 以编程方式将 GeoJSON 转换为 TopoJSON
- 使用 C# 将 GeoJSON 转换为带有量化的 TopoJSON
- 在 C# 中以编程方式将 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:
- 加载输入 GeoJSON 文件
- 将 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:
- 初始化 ConversionOptions 类对象
- 指定量化数
- 或设置 Transform 属性
- 使用量化将 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 的转换:
- 加载输入 TopoJSON 文件
- 将 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 文档 了解更多信息。如有任何疑问或疑虑,请随时在 免费支持论坛 上给我们回信。