Il rendering delle mappe si riferisce alla creazione di mappe visive da dati geospaziali. Puoi eseguire il rendering di mappe da KML, GeoJSON, GeoTIFF e Shapefile in diversi formati di file. Puoi eseguire il rendering delle mappe in diversi formati di immagine come PNG, SVG, JPG, ecc. Le sezioni seguenti elaboreranno il rendering della mappa in immagini:
- Mappare il rendering da uno Shapefile alle immagini – Installazione dell’API C#
- Rendering della mappa da Shapefile a SVG a livello di codice usando C#
- Rendering della mappa da Shapefile a un’immagine PNG a livello di codice in C#
- Rendering di mappe personalizzate con stile avanzato utilizzando C#
- Rendering della mappa dal formato GeoTIFF a SVG a livello di codice usando C#
Mappare il rendering da uno Shapefile alle immagini – Installazione dell’API C#
L’API Aspose.GIS for .NET ti consente di lavorare con diversi formati di file geografici e geospaziali. Puoi eseguire il rendering delle mappe dai formati di file supportati in SVG, PNG e altri formati di file secondo le tue esigenze. Configura l’API scaricandola dalla sezione Nuove versioni oppure puoi utilizzare il seguente comando di installazione NuGet sulla console del gestore pacchetti.
PM> Install-Package Aspose.GIS
Rendering della mappa da Shapefile a SVG a livello di codice usando C#
Puoi eseguire il rendering della mappa da uno shapefile a un file SVG con i seguenti passaggi:
- Crea una nuova istanza della classe Map.
- Crea un livello di mappa vettoriale e aggiungilo alla mappa.
- Rendering della mappa in un file.
Il codice seguente elabora come eseguire il rendering di una mappa da uno Shapefile a SVG a livello di codice usando C#;
// Crea una nuova istanza della classe Map.
using (var map = new Rendering.Map(800, 400))
{
// Crea un livello di mappa vettoriale e aggiungilo alla mappa.
map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));
// Rendering della mappa in un file.
map.Render("land_out.svg", Renderers.Svg);
}
Rendering della mappa da Shapefile a un’immagine PNG a livello di codice in C#
Puoi eseguire il rendering della mappa da uno shapefile in formati di immagine raster come PNG, JPG, BMP, ecc. Di seguito sono riportati i passaggi per il rendering della mappa da shapefile a immagine PNG:
- Inizializza l’oggetto classe Mappa con dimensioni.
- Crea e aggiungi un livello di mappa vettoriale.
- Rendering della mappa in un’immagine PNG.
Il codice seguente mostra il rendering della mappa da Shapefile a un’immagine PNG a livello di codice usando C#:
// Inizializza l'oggetto della classe Mappa con le dimensioni.
using (var map = new Rendering.Map(800, 400))
{
// Crea e aggiungi un livello di mappa vettoriale.
map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));
// Rendering della mappa in un'immagine PNG.
map.Render("land_out.png", Renderers.Png);
}
Rendering di mappe personalizzate con stile avanzato utilizzando C#
È possibile personalizzare l’aspetto di una mappa con stili di funzionalità avanzati. Si prega di seguire i passaggi seguenti per il rendering della mappa personalizzata:
- Inizializza l’oggetto classe Mappa.
- Inizializza SimpleFill per un semplice simbolizzatore di poligoni.
- Apri il livello dallo shapefile di input per la lettura.
- Rendering della mappa in un file.
Il codice seguente spiega come eseguire il rendering di mappe personalizzate con uno stile avanzato utilizzando C#:
// Inizializza l'oggetto della classe Mappa.
using (var map = new Rendering.Map(800, 476))
{
// Inizializza SimpleFill per un semplice simbolizzatore di poligoni.
var baseMapSymbolizer = new Rendering.Symbolizers.SimpleFill { FillColor = Color.Salmon, StrokeWidth = 0.75 };
// Apri il livello dal file di forma di input per la lettura.
map.Add(VectorLayer.Open("basemap.shp", Drivers.Shapefile), baseMapSymbolizer);
// Inizializza una nuova istanza della classe SimpleMarker.
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;
}
};
// Aggiungi un VectorMapLayer alla mappa.
map.Add(VectorLayer.Open("points.geojson", Drivers.GeoJson), citiesSymbolizer);
// Rendering della mappa in un file.
map.Render("cities_out.svg", Renderers.Svg);
}
Rendering della mappa dal formato GeoTIFF a SVG a livello di codice utilizzando C#
È possibile eseguire il rendering di una mappa da GeoTIFF a un file SVG con i seguenti passaggi:
- Istanziare l’oggetto classe Mappa.
- Aprire il livello per la lettura utilizzando il driver per il formato GeoTIFF o TIFF.
- Rendering della mappa in un file.
Il frammento di codice seguente mostra come eseguire il rendering della mappa dal formato GeoTIFF a SVG a livello di codice usando C#:
// Inizializza l'oggetto della classe Mappa.
using (var map = new Rendering.Map(500, 500))
{
// Aprire il livello per la lettura utilizzando il driver per il formato GeoTIFF o TIFF.
var layer = GeoTiff.OpenLayer("raster_float32.tif");
// La conversione in colori viene rilevata automaticamente.
// Vengono calcolati i valori massimo e minimo e viene utilizzata l'interpolazione lineare.
map.Add(layer);
// Rendering della mappa in un file.
map.Render("raster_float32_out.svg", Renderers.Svg);
}
Ottieni la licenza API gratuita
Puoi valutare l’API con una Licenza temporanea gratuita per testare l’API senza alcuna limitazione.
Conclusione
In questo articolo, hai imparato il rendering di mappe dal formato shapefile o GeoTIFF a SVG o altri formati di immagini raster come PNG, JPG, TIFF, ecc. Puoi esplorare altre funzionalità dell’API visitando la Documentazione. Non esitare a contattarci tramite il Forum di supporto gratuito in caso di domande.