Как преобразовать KML в SHP с помощью C#

В этой статье содержится информация о том, как преобразовать KML в SHP с помощью C#, в которой описаны шаги по настройке среды, а затем определена необходимая процедура для написания этого приложения. Вы получите пошаговый набор команд, которые выделяют все необходимые классы, пространства имен и методы, необходимые для преобразования. В конце концов, готовый к выполнению образец кода передается для преобразования KML в SHP с использованием C#, который может быть выполнен в MS Windows с поддержкой .NET или Linux и macOS с поддержкой .NET Core.

Действия по преобразованию KML в SHP с помощью C#

  1. Установите среду разработки для установки Aspose.GIS for .NET из диспетчера пакетов NuGet.
  2. Объявите переменную типа ConversionOptions, чтобы настроить процесс
  3. Проверьте, поддерживает ли тип целевого слоя конкретную систему пространственной привязки.
  4. Задайте требуемое свойство системы пространственной привязки в объекте класса ConversionOptions.
  5. Используя метод VectorLayer.Convert, преобразуйте исходный KML в SHP с выбранными параметрами.

Эти четкие шаги помогают написать конвертер KML в Shapefile с помощью C#, предоставив ресурсы, которые необходимо установить для запуска примера кода. Этот процесс можно выполнить без выполнения какой-либо настройки, однако для лучшего понимания представлен класс ConversionOptions, который можно использовать для установки различных параметров. На последнем этапе вводится фактический метод, который выполняет преобразование вместе с необязательным параметром с желаемыми свойствами.

Код для изменения KML на SHP с помощью C#

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, которые при необходимости можно настроить. Этот пример кода демонстрирует полный преобразователь KML в Shapefile с использованием C#, который можно использовать как есть.

Здесь мы научились писать конвертер KML в SHP с использованием C#, однако, если вы хотите преобразовать шейп-файл в Geojson, вы можете обратиться к статье как конвертировать SHP в Geojson на С#.

 Русский