Преобразование шейп-файла в KML на C#

У нас могут быть географические данные, доступные во многих форматах, поддерживаемых различными системами. В некоторых случаях нам может потребоваться экспортировать географические данные из формата шейп-файла ESRI (SHP) в формат языка разметки Keyhole (KML). Формат Shapefile — это один из наиболее распространенных форматов геопространственных векторных данных ESRI, используемых для отображения географической информации. KML — это формат на основе XML, используемый для обмена географическими данными с пользователями, не являющимися пользователями ГИС. Формат KML используется для отображения географических данных в Google Earth или Google Maps. В этой статье мы узнаем, как преобразовать шейп-файл в KML на C#.

Эта статья должна охватывать следующие темы:

  1. Конвертер шейп-файла C# в KML
  2. Действия по преобразованию шейп-файла в KML
  3. Экспортировать ShapeFile в KML

C# Shapefile to KML Converter API — скачать бесплатно

Чтобы преобразовать шейп-файл в KML, мы будем использовать API Aspose.GIS for .NET. Это позволяет экспортировать шейп-файл в KML без использования программного обеспечения, такого как ArcGIS, ArcMap, QGIS или Google Earth. API также позволяет отображать карты, создавать, читать и преобразовывать географические данные, доступные в поддерживаемых форматах файлов.

Класс ConversionOptions API предоставляет параметры для преобразования данных между форматами. Класс SpatialReferenceSystem предоставляет список различных систем пространственной привязки, которые можно использовать для сопоставления координат с местами на Земле. У нас есть класс VectorLayer, представляющий векторный слой в API. Метод Convert(string, FileDriver, string, FileDriver, ConversionOptions) этого класса преобразует слой в другой формат.

Пожалуйста, либо скачайте DLL API, либо установите его с помощью NuGet.

PM> Install-Package Aspose.GIS

Как преобразовать шейп-файл в KML на C#

Мы можем легко преобразовать шейп-файл в KML с помощью Aspose.GIS для .NET, выполнив следующие шаги:

  • Назначьте пространственную привязку Wgs84 целевому слою.
  • Загрузите и конвертируйте формат файла из SHP в KML.

Теперь давайте посмотрим, как выполнить эти шаги на C#, чтобы преобразовать шейп-файл в формат KML.

Экспорт ShapeFile в KML на C#

Чтобы экспортировать данные из шейп-файла в KML, выполните следующие действия:

  1. Инициализировать экземпляр класса ConversionOptions.
  2. Установите DestinationSpatialReferenceSystem как Wgs84.
  3. Наконец, вызовите метод VectorLayer.Convert(), чтобы преобразовать исходный шейп-файл в KML.

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

// В этом примере кода показано, как преобразовать шейп-файл в KML на C#.
// Рабочий каталог
string dataDir = @"C:\Files\GIS\";

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

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

// Преобразование шейп-файла в KML.
VectorLayer.Convert(dataDir + "Shapefile.shp", Drivers.Shapefile, dataDir + "destination.kml", Drivers.Kml, options);

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

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

Вывод

В этой статье мы узнали, как преобразовать шейп-файл в KML на C#. Мы также видели, как программно определять параметры преобразования. Кроме того, вы можете узнать, как работать с несколькими другими форматами файлов ГИС, и узнать больше об Aspose.GIS for .NET API, используя документацию. В случае каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем форуме.

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