Kartendarstellung

Map Rendering bezieht sich auf die Erstellung visueller Karten aus Geodaten. Sie können Karten aus KML, GeoJSON, GeoTIFF sowie dem Shapefile in verschiedene Dateiformate rendern. Sie können Karten in verschiedene Bildformate wie PNG, SVG, JPG usw. rendern. In den folgenden Abschnitten wird das Rendern von Karten in Bilder erläutert:

Rendern von Shapefiles zu Bildern zuordnen – C# API Installation

Mit der Aspose.GIS for .NET-API können Sie mit verschiedenen geografischen und georäumlichen Dateiformaten arbeiten. Sie können Karten aus unterstützten Dateiformaten gemäß Ihren Anforderungen in SVG, PNG und andere Dateiformate rendern. Bitte konfigurieren Sie die API, indem Sie sie aus dem Abschnitt Neue Versionen herunterladen, oder verwenden Sie den folgenden NuGet Installationsbefehl in der Paket-Manager Konsole.

PM> Install-Package Aspose.GIS

Render Map von Shapefile zu SVG programmgesteuert mit C#

Mit den folgenden Schritten können Sie eine Karte aus einem Shapefile in eine SVG Datei rendern:

  1. Erstellen Sie eine neue Instanz der Klasse Map.
  2. Erstellen Sie eine Vektorkartenebene und fügen Sie sie der Karte hinzu.
  3. Rendern Sie die Karte in eine Datei.

Der folgende Code erläutert, wie eine Karte mithilfe von C# programmgesteuert von einem Shapefile in SVG gerendert wird;

// Erstellen Sie eine neue Instanz der Map Klasse.
using (var map = new Rendering.Map(800, 400))
{
    // Erstellen Sie eine Vektorkartenebene und fügen Sie sie der Karte hinzu.
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // Rendern Sie die Karte in eine Datei.
    map.Render("land_out.svg", Renderers.Svg);
}

Rendern Sie eine Karte von Shapefile zu einem PNG Bild programmgesteuert in C#

Sie können eine Karte aus einem Shapefile in Rasterbildformate wie PNG, JPG, BMP usw. rendern. Im Folgenden sind die Schritte zum Rendern einer Karte aus einem Shapefile in ein PNG Bild aufgeführt:

  1. Klassenobjekt Map mit Dimensionen initialisieren.
  2. Erstellen Sie eine Vektorkartenebene und fügen Sie sie hinzu.
  3. Rendern Sie die Karte in ein PNG Bild.

Der folgende Code zeigt das Karten-Rendering von Shapefile zu PNG Bild programmgesteuert mit C#:

// Initialisieren Sie das Map Klassenobjekt mit Abmessungen.
using (var map = new Rendering.Map(800, 400))
{
    // Vektorkartenebene erstellen und hinzufügen.
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // Rendern Sie die Karte in ein PNG Bild.
    map.Render("land_out.png", Renderers.Png);
}

Benutzerdefiniertes Karten-Rendering mit Advance Style unter Verwendung von C#

Sie können das Erscheinungsbild einer Karte mit erweiterten Feature-Stilen anpassen. Bitte befolgen Sie die nachstehenden Schritte zum Rendern von benutzerdefinierten Karten:

  1. Klassenobjekt Map initialisieren.
  2. Initialisieren Sie SimpleFill für einen einfachen Polygonsymbolisierer.
  3. Öffnen Sie die Ebene aus dem Eingabe-Shapefile zum Lesen.
  4. Rendern Sie die Karte in eine Datei.

Der folgende Code erklärt, wie Sie mit C# ein benutzerdefiniertes Kartenrendering mit erweitertem Stil durchführen:

// Objekt der Map Klasse initialisieren.
using (var map = new Rendering.Map(800, 476))
{
    // Initialisieren Sie SimpleFill für den einfachen Polygonsymbolisierer.
    var baseMapSymbolizer = new Rendering.Symbolizers.SimpleFill { FillColor = Color.Salmon, StrokeWidth = 0.75 };

    // Öffnen Sie die Ebene aus dem Eingabe-Shapefile zum Lesen.
    map.Add(VectorLayer.Open("basemap.shp", Drivers.Shapefile), baseMapSymbolizer);

    // Initialisieren Sie eine neue Instanz der SimpleMarker Klasse.
    var citiesSymbolizer = new Rendering.Symbolizers.SimpleMarker() { FillColor = Color.LightBlue };
    citiesSymbolizer.FeatureBasedConfiguration = (feature, symbolizer) =>
    {
        var population = feature.GetValue<int>("population");
        symbolizer.Size = 10 * population / 1000;
        if (population < 2500)
        {
            symbolizer.FillColor = Color.GreenYellow;
        }
    };

    // Fügen Sie der Karte einen VectorMapLayer hinzu.
    map.Add(VectorLayer.Open("points.geojson", Drivers.GeoJson), citiesSymbolizer);

    // Karte in eine Datei rendern.
    map.Render("cities_out.svg", Renderers.Svg);
}

Rendern Sie Karte aus dem GeoTIFF Format in SVG programmgesteuert mit C#

Mit den folgenden Schritten können Sie eine Karte von GeoTIFF in eine SVG Datei rendern:

  1. Instanziieren Sie das Klassenobjekt Map.
  2. Öffnen Sie die Ebene zum Lesen mit dem Treiber für das GeoTIFF oder TIFF-Format.
  3. Karte in eine Datei rendern.

Das folgende code snippet zeigt, wie eine Karte vom GeoTIFF Format programmgesteuert mit C# in SVG gerendert wird:

// Objekt der Map Klasse initialisieren.
using (var map = new Rendering.Map(500, 500))
{
    // Öffnen Sie die Ebene zum Lesen mit dem Treiber für das GeoTIFF oder TIFF-Format.
    var layer = GeoTiff.OpenLayer("raster_float32.tif");
                
    // Die Konvertierung in Farben wird automatisch erkannt.
    // Die Maximal und Minimalwerte werden berechnet und es wird eine lineare Interpolation verwendet.
    map.Add(layer);

    // Karte in eine Datei rendern.
    map.Render("raster_float32_out.svg", Renderers.Svg);
}

Erhalten Sie eine kostenlose API Lizenz

Sie können die API mit einer kostenlosen temporären Lizenz evaluieren, um die API ohne Einschränkungen zu testen.

Fazit

In diesem Artikel haben Sie das Rendern von Karten vom Shapefile oder GeoTIFF Format in SVG oder andere Rasterbildformate wie PNG, JPG, TIFF usw. erlernt. Sie können andere Funktionen der API erkunden, indem Sie die Dokumentation besuchen. Bei Fragen können Sie sich gerne über das Free Support Forum an uns wenden.

Siehe auch