Konvertera Shapefile till SVG i C#

Shapefile-formatet är ESRI:s ett av de vanligaste geospatiala vektordataformaten som används för att visa geografisk information. I vissa fall kan vi behöva exportera geografiska data från formatet ESRI Shapefile (SHP) till formatet SVG. SVG är ett XML-baserat textformat för att beskriva utseendet på en bild. I den här artikeln kommer vi att lära oss hur man konverterar en shapefil till SVG i C#.

Den här artikeln ska täcka följande ämnen:

  1. C# Shapefile to SVG Converter
  2. Steg för att konvertera Shapefile till SVG
  3. Rendera ShapeFile till SVG

C# Shapefile to SVG Converter API - Gratis nedladdning

För att konvertera en shapefil till SVG kommer vi att använda Aspose.GIS for .NET API. Det tillåter export av shapefile till SVG utan att behöva programvara som ArcGIS, ArcMap, QGIS eller Google Earth. API:et tillåter också rendering av kartor, skapande, läsning och konvertering av geografiska data som är tillgängliga i de filformat som stöds.

Klassen Map i API:t är en samling lager som kan renderas ovanpå varandra via Renderer. Klassen SpatialReferenceSystem tillhandahåller en lista över olika rumsliga referenssystem som ska användas för kartan. Vi kan definiera en enkel vektorlinjesymboliserare med klassen SimpleLine. Vi har klassen VectorLayer som representerar ett vektorlager i API:t. Vi kan ladda shapefilen i ett vektorlager med metoden Open(string, FileDriver) för denna klass. Det öppnar lagret för läsning.

Vänligen antingen ladda ner API:ts DLL eller installera den med NuGet.

PM> Install-Package Aspose.GIS

Hur man konverterar Shapefile till SVG i C#

Vi kan enkelt konvertera en shapefil till SVG med Aspose.GIS för .NET genom att följa stegen nedan:

  1. Initiera en karta.
  2. Tilldela Wgs84 rumslig referens till kartan.
  3. Öppna en shapefil som ett vektorlager.
  4. Lägg till shapefile-lagret på kartan.
  5. Gör kartan i SVG-format.

Låt oss nu se hur man omvandlar dessa steg till C#-kod och konverterar en shapefile-fil till SVG-format.

Rendera ShapeFile till SVG i C#

Följ stegen nedan för att rendera en shapefil som SVG:

  1. Skapa först en instans av klassen Map.
  2. Ställ sedan in SpatialReferenceSystem som Wgs84.
  3. Definiera sedan en enkel linjesymboliserare med klassen SimpleLine.
  4. Under tiden laddar du en shapefil med metoden VectorLayer.Open() .
  5. Efter det lägger du till shapefile-lagret på kartan med metoden Map.Add().
  6. Till sist, anropa metoden Map.Render() för att spara som SVG. Den tar SVG-filsökvägen och Renderers.Svg som argument.

Följande kodexempel visar hur man konverterar en shapefil till SVG med C#.

// Detta kodexempel visar hur man konverterar en shapefil till SVG.
// Filkatalog
string dataDir = "C:\\Files\\GIS\\";

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

// Använd den angivna SRS
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// Använd den angivna stilen för att rita linjer
// Vi har även stilar för punkter, linjer och ytor.
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// Öppna en shapefil som lager
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// Lägg till shapefile-lager på kartan
map.Add(shapefileLayer, symbolizer);

// Gör kartan till Svg-format
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man konverterar en shapefil till SVG i C#. Vi har också sett hur man definierar en karta och laddar en shapefil programmatiskt. Dessutom kan du utforska hur du arbetar med flera andra GIS-filformat och lära dig mer om API:t med hjälp av dokumentation. I händelse av oklarheter är du välkommen att kontakta oss på vårt gratis supportforum.

Se även