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

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

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

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

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

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

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

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

PM> Install-Package Aspose.GIS

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

Мы можем легко преобразовать шейп-файл в SVG с помощью Aspose.GIS для .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#.

// This code example demonstrates how to convert a shapefile to SVG.
// Files directory
string dataDir = "C:\\Files\\GIS\\";

// Initialize Map
var map = new Map(800, 400);

// Use the specified SRS
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// Use the specified style to draw lines
// We also have styles for points, lines, and surfaces.
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// Open a shapefile as layer
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// Add shapefile layer to the map
map.Add(shapefileLayer, symbolizer);

// Render the map to Svg format
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

Get a Free License

You can get a free temporary license to try the library without evaluation limitations.

Conclusion

In this article, we have learned how to convert a shapefile to SVG in C#. We have also seen how to define maps and load shapefile programmatically. Besides, you can explore how to work with several other GIS file formats and learn more about the API using documentation. In case of any ambiguity, please feel free to contact us on our free support forum.

See Also