Pemetaan Render ke Gambar SVG, PNG, JPG menggunakan Pustaka GIS C#

Ikhtisar Pemetaan Render

Dengan Aspose.GIS untuk API C# .NET Anda dapat merender peta dari Shapefile, FileGDB, GeoJSON, KML atau format file yang didukung lainnya ke SVG, PNG, JPEG, atau BMP.

Berikut adalah kode C# yang menggambarkan cara merender peta dari shapefile ke SVG menggunakan pengaturan default:

// 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);
}

Berikut adalah hasilnya:

pemetaan render

Mari kita lihat lebih dekat kodenya.

Pertama, kita membuat instans objek Map . Ini mewakili kumpulan lapisan dari berbagai sumber yang dapat dirender. Peta memiliki ukuran di mana ia dimaksudkan untuk ditampilkan. Di sini kita mengatur peta menjadi lebar 800 piksel dan tinggi 400 piksel.

Perhatikan bahwa Map tertutup dalam pernyataan using. Ini diperlukan karena peta melacak semua sumber daya yang ditambahkan ke dalamnya, dan membuangnya saat kita selesai dengan rendering dan objek Peta dibuang.

Selanjutnya, kita menambahkan lapisan dari file ke peta. Setiap lapisan dirender di atas lapisan sebelumnya, sesuai urutan penambahan ke peta. Lihat detail lebih lanjut tentang cara membuka lapisan vektor di sini.

Terakhir, kita memanggil Map.Render untuk merender peta ke file. Kita menentukan jalur ke tempat menyimpan file hasil dan renderer yang akan digunakan. Kelas Renderers berisi referensi ke semua renderer yang disertakan dengan Aspose.GIS. Misalnya, Anda dapat menentukan Renderers.Png alih-alih Renderers.Svg dalam contoh di atas untuk merender peta ke file PNG

Penataan Gaya Lanjutan

Dengan API Aspose.GIS, Anda dapat menyesuaikan rendering dan gaya fitur untuk mencapai tampilan yang Anda inginkan.

penataan gaya lanjutan

// 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);
}

Gambar raster di peta

Dengan Aspose.GIS untuk .NET Anda dapat merender peta dari format raster.

Render dengan pengaturan default

Berikut cara merender peta dari GeoTIFF ke SVG menggunakan pengaturan default:

// 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);
}

raster default

Render raster miring

Dengan Aspose.GIS Anda dapat merender raster dengan sel raster miring.

// 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);
}

raster miring

Render dalam referensi spasial polar

Aspose.GIS memungkinkan Anda menggunakan referensi spasial polar pada proses rendering peta.

// 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);
}

negara gnomonik