Převést Shapefile na SVG v C#

Formát Shapefile je jedním z nejběžnějších formátů geoprostorových vektorových dat ESRI používaných k zobrazení geografických informací. V určitých případech můžeme potřebovat exportovat geografická data z formátu ESRI Shapefile (SHP) do formátu SVG. SVG je textový formát založený na XML pro popis vzhledu obrázku. V tomto článku se naučíme, jak převést shapefile na SVG v C#.

Tento článek se bude týkat následujících témat:

  1. C# Shapefile to SVG Converter
  2. Kroky pro převod Shapefile na SVG
  3. Vykreslit soubor ShapeFile do SVG

C# Shapefile to SVG Converter API – ke stažení zdarma

K převodu shapefile na SVG použijeme Aspose.GIS for .NET API. Umožňuje exportovat shapefile do SVG bez potřeby softwaru jako ArcGIS, ArcMap, QGIS nebo Google Earth. API také umožňuje vykreslování map, vytváření, čtení a konverzi geografických dat dostupných v podporované formáty souborů.

Třída Map API je kolekce vrstev, které lze vykreslovat na sebe pomocí Renderer. Třída SpatialReferenceSystem poskytuje seznam různých prostorových referenčních systémů pro použití v mapě. Jednoduchý vektorový symbolizér můžeme definovat pomocí třídy SimpleLine. Máme třídu VectorLayer, která představuje vektorovou vrstvu v API. Tvarový soubor můžeme načíst do vektorové vrstvy pomocí metody Open(string, FileDriver) této třídy. Otevře vrstvu pro čtení.

Prosím buď stáhněte DLL API, nebo ji nainstalujte pomocí NuGet.

PM> Install-Package Aspose.GIS

Jak převést Shapefile na SVG v C#

Tvarový soubor můžeme snadno převést na SVG pomocí Aspose.GIS pro .NET podle následujících kroků:

  1. Inicializujte mapu.
  2. Přiřaďte mapě prostorovou referenci Wgs84.
  3. Otevřete soubor shapefile jako vektorovou vrstvu.
  4. Přidejte vrstvu shapefile na mapu.
  5. Vykreslete mapu ve formátu SVG.

Nyní se podívejme, jak převést tyto kroky do kódu C# a převést soubor shapefile do formátu SVG.

Vykreslit ShapeFile do SVG v C#

Chcete-li vykreslit soubor shapefile jako SVG, postupujte podle následujících kroků:

  1. Nejprve vytvořte instanci třídy Map.
  2. Dále nastavte SpatialReferenceSystem jako Wgs84.
  3. Poté pomocí třídy SimpleLine definujte jednoduchý čárový symbolizér.
  4. Mezitím načtěte soubor shapefile pomocí metody VectorLayer.Open().
  5. Poté přidejte vrstvu shapefile do mapy pomocí metody Map.Add().
  6. Nakonec zavolejte metodu Map.Render() pro uložení jako SVG. Jako argumenty bere cestu k výstupnímu souboru SVG a Renderers.Svg.

Následující ukázka kódu ukazuje, jak převést shapefile na SVG pomocí C#.

// Tento příklad kódu ukazuje, jak převést shapefile na SVG.
// Adresář souborů
string dataDir = "C:\\Files\\GIS\\";

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

// Použijte specifikovaný SRS
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// Pro kreslení čar použijte určený styl
// Máme také styly pro body, čáry a povrchy.
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// Otevřete soubor shapefile jako vrstvu
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// Přidejte na mapu vrstvu shapefile
map.Add(shapefileLayer, symbolizer);

// Vykreslete mapu do formátu Svg
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet knihovnu bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili, jak převést shapefile na SVG v C#. Také jsme viděli, jak definovat mapu a programově načíst shapefile. Kromě toho můžete prozkoumat, jak pracovat s několika dalšími formáty souborů GIS a dozvědět se více o API pomocí dokumentace. V případě jakýchkoliv nejasností nás prosím neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také