Могут возникнуть ситуации, когда вам нужно преобразовать файлы KML в формат GeoJSON или наоборот. В таких случаях эта статья научит вас преобразовывать файлы KML в формат GeoJSON и файлы GeoJSON в формат KML с помощью C#.

C# API для преобразования KML в GeoJSON и наоборот

Aspose.GIS for .NET API позволяет отображать карты, а также создавать, читать и преобразовывать географические данные без дополнительного программного обеспечения. Кроме того, API позволяет преобразовывать файлы KML в формат GeoJSON и наоборот. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.

PM> Install-Package Aspose.GIS

Преобразование KML в GeoJSON на C#

Ниже приведены шаги для преобразования файлов KML в формат GeoJSON.

В следующем примере кода показано, как преобразовать файл KML в формат GeoJSON с помощью C#.

string dataDir = RunExamples.GetDataDir();
string sourceFile = dataDir + "Kml_File.kml";
string outputFile = dataDir + "output.geojson";

// При необходимости укажите параметры конвертации. Это необязательно.
ConversionOptions options = null;

// Эта опция назначает Wgs84 целевому слою.
// Преобразование может вызвать ошибку, если целевой слой не поддерживает пространственную привязку Wgs84. Так что надо проверить.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Преобразование формата файла из KML в GeoJSON
VectorLayer.Convert(sourceFile, Drivers.Kml, outputFile, Drivers.GeoJson, options);

Преобразование GeoJSON в KML на C#

Ниже приведены шаги для преобразования файлов GeoJSON в формат KML.

В следующем примере кода показано, как преобразовать файл GeoJSON в формат KML с помощью C#.

string dataDir = RunExamples.GetDataDir();
string sourceFile = dataDir + "intersection.geojson";
string outputFile = dataDir + "output.kml";

// При необходимости укажите параметры конвертации. Это необязательно.
ConversionOptions options = null;

// Эта опция назначает Wgs84 целевому слою.
// Преобразование может вызвать ошибку, если целевой слой не поддерживает пространственную привязку Wgs84. Так что надо проверить.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Преобразование формата файла из GeoJSON в KML.
VectorLayer.Convert(sourceFile, Drivers.GeoJson, outputFile, Drivers.Kml, options);

Получить бесплатную лицензию

Чтобы попробовать API без оценочных ограничений, вы можете получить бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как конвертировать файлы KML в формат GeoJSON и наоборот с помощью C#. Общие фрагменты кода демонстрируют, как добиться таких преобразований всего несколькими строками кода. Aspose.GIS for .NET — это надежный и многофункциональный API, который помогает вам работать с геопространственными данными. Вы можете подробно изучить API, посетив официальную документацию. Если у вас возникнут вопросы, обращайтесь к нам на бесплатный форум поддержки.

Смотрите также