У нас могут быть географические данные, доступные во многих форматах, поддерживаемых различными системами. В некоторых случаях нам может потребоваться экспортировать географические данные из формата шейп-файла ESRI (SHP) в формат языка разметки Keyhole (KML). Формат Shapefile — это один из наиболее распространенных форматов геопространственных векторных данных ESRI, используемых для отображения географической информации. KML — это формат на основе XML, используемый для обмена географическими данными с пользователями, не являющимися пользователями ГИС. Формат KML используется для отображения географических данных в Google Earth или Google Maps. В этой статье мы узнаем, как преобразовать шейп-файл в KML на C#.
Эта статья должна охватывать следующие темы:
- Конвертер шейп-файла C# в KML
- Действия по преобразованию шейп-файла в KML
- Экспортировать 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, выполните следующие действия:
- Инициализировать экземпляр класса ConversionOptions.
- Установите DestinationSpatialReferenceSystem как Wgs84.
- Наконец, вызовите метод 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, используя документацию. В случае каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем форуме.