Format Shapefile to jeden z najpopularniejszych formatów wektorowych danych geoprzestrzennych firmy ESRI używanych do wyświetlania informacji geograficznych. W niektórych przypadkach może być konieczne wyeksportowanie danych geograficznych z formatu ESRI Shapefile (SHP) do formatu SVG. SVG to oparty na XML format tekstowy opisujący wygląd obrazu. W tym artykule dowiemy się, jak przekonwertować plik kształtu na SVG w języku C#.
Ten artykuł obejmuje następujące tematy:
C# Shapefile to SVG Converter API — bezpłatne pobieranie
Aby przekonwertować plik kształtu na SVG, użyjemy API Aspose.GIS for .NET. Umożliwia eksportowanie plików shape do formatu SVG bez konieczności używania oprogramowania takiego jak ArcGIS, ArcMap, QGIS lub Google Earth. API umożliwia również renderowanie map, tworzenie, odczytywanie i konwertowanie danych geograficznych dostępnych w obsługiwanych formatach plików.
Klasa Map interfejsu API to zbiór warstw, które można renderować jedna na drugiej za pomocą Renderer. Klasa SpatialReferenceSystem udostępnia listę różnych systemów odniesień przestrzennych, które mają być używane na mapie. Możemy zdefiniować prosty symbolizator linii wektorowych za pomocą klasy SimpleLine. Mamy klasę VectorLayer, która reprezentuje warstwę wektorową w API. Możemy załadować plik kształtu do warstwy wektorowej za pomocą metody Open(string, FileDriver) tej klasy. Otwiera warstwę do czytania.
Pobierz bibliotekę DLL interfejsu API lub zainstaluj ją za pomocą NuGet.
PM> Install-Package Aspose.GIS
Jak przekonwertować plik Shapefile na SVG w C#
Możemy łatwo przekonwertować plik kształtu na SVG za pomocą Aspose.GIS for .NET, wykonując poniższe czynności:
- Zainicjuj mapę.
- Przypisz odniesienie przestrzenne Wgs84 do mapy.
- Otwórz plik kształtu jako warstwę wektorową.
- Dodaj warstwę shapefile do mapy.
- Renderuj mapę w formacie SVG.
Zobaczmy teraz, jak przekształcić te kroki w kod C# i przekonwertować plik kształtu do formatu SVG.
Renderuj ShapeFile do SVG w C#
Wykonaj poniższe czynności, aby wyrenderować plik kształtu jako SVG:
- Najpierw utwórz instancję klasy Map.
- Następnie ustaw SpatialReferenceSystem na Wgs84.
- Następnie zdefiniuj prosty symbolizator linii za pomocą klasy SimpleLine.
- W międzyczasie załaduj plik kształtu za pomocą metody VectorLayer.Open().
- Następnie dodaj warstwę shapefile do mapy za pomocą metody Map.Add().
- Na koniec wywołaj metodę Map.Render(), aby zapisać jako SVG. Pobiera ścieżkę wyjściowego pliku SVG i Renderers.Svg jako argumenty.
Poniższy przykładowy kod pokazuje, jak przekonwertować plik kształtu na format SVG przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak przekonwertować plik kształtu na SVG.
// Katalog plików
string dataDir = "C:\\Files\\GIS\\";
// Zainicjuj mapę
var map = new Map(800, 400);
// Użyj określonego SRS
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;
// Użyj określonego stylu do rysowania linii
// Mamy również style dla punktów, linii i powierzchni.
var symbolizer = new SimpleLine()
{
Width = Measurement.Pixels(2)
};
// Otwórz plik kształtu jako warstwę
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);
// Dodaj warstwę pliku kształtu do mapy
map.Add(shapefileLayer, symbolizer);
// Renderuj mapę do formatu Svg
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);
Uzyskaj bezpłatną licencję
Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.
Wniosek
W tym artykule dowiedzieliśmy się, jak przekonwertować plik kształtu na SVG w języku C#. Widzieliśmy również, jak programowo zdefiniować mapę i załadować plik kształtu. Poza tym możesz dowiedzieć się, jak pracować z kilkoma innymi formatami plików GIS i dowiedzieć się więcej o interfejsie API, korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na naszym darmowym forum pomocy.