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