本文提供有关如何使用 C# 将 KML 转换为 SHP 的信息,方法是共享自定义环境的步骤,然后定义编写此应用程序所需的过程。您将获得一组分步命令,这些命令突出显示了转换所需的所有必需类、命名空间和方法。最后,共享一个可运行的示例代码,使用 C#** 将 **KML 转换为 SHP,可以在支持 .NET 或 Linux 的 MS Windows 和支持 .NET Core 的 macOS 中执行。
使用 C# 将 KML 转换为 SHP 的步骤
- 建立开发环境以从 NuGet 包管理器安装 Aspose.GIS for .NET
- 声明一个 ConversionOptions 类型的变量来自定义流程
- 检查目标图层类型是否支持特定的空间参考系统
- 在 ConversionOptions 类对象中设置所需的空间参考系统属性
- 使用 VectorLayer.Convert 方法使用所选选项将源 KML 转换为 SHP
这些简洁的步骤通过引入为运行示例代码而安装的资源,有助于使用 C#* 编写 *KML 到 Shapefile 转换器。此过程可以在不执行任何自定义的情况下完成,但是为了更好地理解 ConversionOptions 类,引入了可用于设置不同参数的类。在最后一步中,介绍了执行转换的实际方法以及具有所需属性的可选参数。
使用 C# 将 KML 更改为 SHP 的代码
using Aspose.Gis; | |
using Aspose.Gis.SpatialReferencing; | |
namespace AsposeProjects | |
{ | |
class Program | |
{ | |
static void Main(string[] args) // Main function to Convert KML to SHP using C# | |
{ | |
// Load license | |
Aspose.Gis.License lic = new Aspose.Gis.License(); | |
lic.SetLicense(@"Aspose.Total.lic"); | |
// Create ConversionOptions if required | |
ConversionOptions options = new ConversionOptions(); | |
// This options assigns Wgs84 to the destination layer. | |
// Conversion may throw error If destination layer does not support the Wgs84 spatial reference. So need to check. | |
// | |
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs72)) | |
options.DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs72; | |
// Convert file format from KML to Shapefile. | |
VectorLayer.Convert("source.kml", Drivers.Kml, "destination.shp", Drivers.Shapefile, options); | |
System.Console.WriteLine("Done"); | |
} | |
} | |
} |
您只能将最后一行代码与前四个参数一起使用,但是如果您想为目标图层分配特定的空间参考系统,那么您只能使用 ConversionOptions 类对象。 ConversionOptions 类还包含其他属性,例如 AttributeConverter、DestinationDriverOptions、DestinationSpatialReferenceSystem 和 SourceDriverOptions,如果需要,可以配置这些属性。此示例代码使用 C#* 演示了一个完整的 *KML 到 Shapefile 转换器,可以按原样使用。
我们在这里学习了使用 C#* 编写 *KML 到 SHP 转换器,但是如果您想将 Shapefile 转换为 Geojson,您可以参考 如何在 C# 中将 SHP 转换为 Geojson 上的文章。