Перетворення Shapefile у SVG у C#

Формат Shapefile є одним із найпоширеніших форматів геопросторових векторних даних ESRI, який використовується для відображення географічної інформації. У деяких випадках нам може знадобитися експортувати географічні дані з формату ESRI Shapefile (SHP) у формат SVG. SVG — це текстовий формат на основі XML для опису зовнішнього вигляду зображення. У цій статті ми дізнаємося, як конвертувати шейп-файл у SVG на C#.

Ця стаття охоплюватиме наступні теми:

  1. C# Shapefile to SVG Converter
  2. Кроки для перетворення Shapefile у SVG
  3. Відтворення ShapeFile у SVG

C# Shapefile to SVG Converter API – Безкоштовне завантаження

Щоб перетворити шейп-файл у SVG, ми будемо використовувати Aspose.GIS for .NET API. Це дозволяє експортувати шейп-файл у SVG без використання такого програмного забезпечення, як ArcGIS, ArcMap, QGIS або Google Earth. API також дозволяє відтворювати карти, створювати, читати та перетворювати географічні дані, доступні у підтримуваних форматах файлів.

Клас API Map — це набір шарів, які можна відображати один поверх одного за допомогою Renderer. Клас SpatialReferenceSystem надає список різних систем просторової відліки для використання на карті. Ми можемо визначити простий символізатор векторної лінії за допомогою класу SimpleLine. У нас є клас VectorLayer, який представляє векторний рівень в API. Ми можемо завантажити шейп-файл у векторний шар за допомогою методу Open(string, FileDriver) цього класу. Він відкриває шар для читання.

Завантажте DLL API або встановіть його за допомогою NuGet.

PM> Install-Package Aspose.GIS

Як конвертувати Shapefile у SVG у C#

Ми можемо легко перетворити шейп-файл у SVG за допомогою Aspose.GIS for .NET, виконавши наведені нижче дії:

  1. Ініціалізація карти.
  2. Призначте просторову прив’язку Wgs84 до карти.
  3. Відкрийте шейп-файл як векторний шар.
  4. Додайте шар шейп-файлу до карти.
  5. Відобразити карту у форматі SVG.

Тепер давайте подивимося, як перетворити ці кроки в код C# і перетворити шейп-файл у формат SVG.

Відтворення ShapeFile у SVG у C#

Виконайте наведені нижче кроки, щоб відтворити шейп-файл у форматі SVG:

  1. По-перше, створіть екземпляр класу Map.
  2. Далі встановіть SpatialReferenceSystem як Wgs84.
  3. Потім визначте простий символізатор лінії за допомогою класу SimpleLine.
  4. Тим часом завантажте шейп-файл за допомогою методу VectorLayer.Open().
  5. Після цього додайте шар шейп-файлу до карти за допомогою методу Map.Add().
  6. Нарешті, викличте метод Map.Render(), щоб зберегти як SVG. Він приймає вихідний шлях до файлу SVG і Renderers.Svg як аргументи.

У наведеному нижче прикладі коду показано, як перетворити шейп-файл у SVG за допомогою C#.

// Цей приклад коду демонструє, як перетворити шейп-файл у SVG.
// Каталог файлів
string dataDir = "C:\\Files\\GIS\\";

// Ініціалізувати карту
var map = new Map(800, 400);

// Використовуйте вказану СГД
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// Використовуйте вказаний стиль для малювання ліній
// У нас також є стилі для точок, ліній і поверхонь.
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// Відкрийте шейп-файл як шар
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// Додайте шар шейп-файлу до карти
map.Add(shapefileLayer, symbolizer);

// Відтворіть карту у форматі Svg
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

Отримайте безкоштовну ліцензію

Ви можете отримати безкоштовну тимчасову ліцензію, щоб спробувати бібліотеку без оціночних обмежень.

Висновок

У цій статті ми дізналися, як конвертувати шейп-файл у SVG на C#. Ми також бачили, як визначити карту та завантажити шейп-файл програмно. Крім того, ви можете дослідити, як працювати з кількома іншими форматами файлів ГІС, і дізнатися більше про API за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також