Kartenrendering zu Bild SVG, PNG, JPG mit GIS C#-Bibliothek

Überblick über das Kartenrendering

Mit der Aspose.GIS for .NET C# API können Sie eine Karte aus einem Shapefile, FileGDB, GeoJSON, KML oder anderen unterstützten Dateiformaten in SVG, PNG, JPEG oder BMP rendern.

Hier ist ein C#-Code, der veranschaulicht, wie man eine Karte aus einer Shapefile mit Standardeinstellungen in SVG rendert:

// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET
using (var map = new Map(800, 400))
{
map.Add(VectorLayer.Open(dataDir + "land.shp", Drivers.Shapefile));
map.Render(dataDir + "land_out.svg", Renderers.Svg);
}

Hier ist das Ergebnis:

Kartenrendering

Schauen wir uns den Code genauer an.

Zuerst instanziieren wir ein Map -Objekt. Es repräsentiert eine Sammlung von Layern aus verschiedenen Quellen, die gerendert werden können. Eine Karte hat eine Größe, in der sie angezeigt werden soll. Hier setzen wir die Karte auf 800 Pixel Breite und 400 Pixel Höhe.

Beachten Sie, dass sich die Map in einer using-Anweisung befindet. Dies ist notwendig, da die Map alle hinzugefügten Ressourcen verfolgt und diese verwirft, wenn wir mit dem Rendern fertig sind und das Map-Objekt verworfen wird.

Als Nächstes fügen wir ein Layer aus einer Datei zur Karte hinzu. Jedes Layer wird über den vorherigen Layern gerendert, in der Reihenfolge, in der sie der Karte hinzugefügt wurden. Weitere Details zum Öffnen von Vektorlayern finden Sie hier.

Schließlich rufen wir Map.Render auf, um die Karte in eine Datei zu rendern. Wir geben einen Pfad an, wo die Ergebnisdatei gespeichert werden soll, und einen Renderer, der verwendet werden soll. Die Klasse Renderers enthält Referenzen auf alle mit Aspose.GIS gelieferten Renderer. Sie können beispielsweise Renderers.Png anstelle von Renderers.Svg im obigen Beispiel angeben, um die Karte in eine PNG-Datei zu rendern.

Erweiterte Formatierung

Mit der Aspose.GIS API können Sie das Rendering und den Feature-Stil anpassen, um das gewünschte Aussehen zu erzielen.

erweiterte Formatierung

// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET
using (var map = new Map(800, 476))
{
var baseMapSymbolizer = new SimpleFill { FillColor = Color.Salmon, StrokeWidth = 0.75 };
map.Add(VectorLayer.Open(dataDir + "basemap.shp", Drivers.Shapefile), baseMapSymbolizer);
var citiesSymbolizer = new 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;
}
};
map.Add(VectorLayer.Open(dataDir + "points.geojson", Drivers.GeoJson), citiesSymbolizer);
map.Render(dataDir + "cities_out.svg", Renderers.Svg);
}

Raster in Karte zeichnen

Mit Aspose.GIS for .NET können Sie eine Karte aus Rasterformaten rendern.

Mit Standardeinstellungen rendern

Hier erfahren Sie, wie Sie eine Karte aus einem GeoTIFF mit Standardeinstellungen in SVG rendern:

// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET
string filesPath = RunExamples.GetDataDir();
using (var map = new Map(500, 500))
{
var layer = Drivers.GeoTiff.OpenLayer(Path.Combine(filesPath, "raster_float32.tif"));
// Conversion to colors is detected automatically.
// The maximum and minimum values are calculated and linear interpolation is used.
map.Add(layer);
map.Render(filesPath + "raster_float32_out.svg", Renderers.Svg);
}

Standardraster

Schiefe Raster rendern

Mit Aspose.GIS können Sie ein Raster mit schiefen Rasterzellen rendern.

// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET
string filesPath = RunExamples.GetDataDir();
using (var map = new Map(500, 500))
{
// use background color
map.BackgroundColor = Color.Azure;
var layer = Drivers.GeoTiff.OpenLayer(Path.Combine(filesPath, "raster_skew.tif"));
// Conversion to colors is detected automatically.
// The maximum and minimum values are calculated and linear interpolation is used.
map.Add(layer);
map.Render(filesPath + "raster_skew_out.svg", Renderers.Svg);
}

Schiefes Raster

In polaren räumlichen Referenzen rendern

Aspose.GIS ermöglicht Ihnen die Verwendung polarer räumlicher Referenzen in einem Kartenrenderingprozess.

// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET
string filesPath = RunExamples.GetDataDir();
// make own multi colorizer it works faster than auto-detection
var colorizer = new MultiBandColor()
{
RedBand = new BandColor() { BandIndex = 0, Min = 0, Max = 255 },
GreenBand = new BandColor() { BandIndex = 1, Min = 0, Max = 255 },
BlueBand = new BandColor() { BandIndex = 2, Min = 0, Max = 255 }
};
using (var map = new Map(500, 500))
{
// setup the polar extent and coordinate system (gnomonic spatial reference)
map.SpatialReferenceSystem = SpatialReferenceSystem.CreateFromEpsg(102034);
map.Extent = new Extent(-180, 60, 180, 90) { SpatialReferenceSystem = SpatialReferenceSystem.Wgs84 };
map.BackgroundColor = Color.Azure;
// open geo-tiff
var layer = Drivers.GeoTiff.OpenLayer(Path.Combine(filesPath, "raster_countries.tif"));
// draw
map.Add(layer, colorizer);
map.Render(filesPath + "raster_countries_gnomonic_out.png", Renderers.Png);
}

gnomonische Länder