עיבוד מפות לתמונה SVG, PNG, JPG באמצעות ספריית GIS C#

סקירת עיבוד מפות

עם Aspose.GIS עבור API של .NET C# אתה יכול לעבד מפה מקובץ Shapefile, FileGDB, GeoJSON, KML או פורמטים תומכים אחרים [/gis/net/supported-file-formats/] ל-SVG, PNG, JPEG או BMP.

הנה קוד C# המדגים כיצד לעבד מפה מקובץ shapefile ל-SVG באמצעות הגדרות ברירת מחדל:

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

הנה התוצאה:

עיבוד מפות

בואו נסתכל מקרוב על הקוד.

ראשית, אנו יוצרים מופע של אובייקט Map . הוא מייצג אוסף שכבות ממקורות שונים שניתן לעבד. למפה יש גודל שהיא אמורה להיות מוצגת בו. כאן אנו מגדירים את המפה לרוחב של 800 פיקסלים וגובה של 400 פיקסלים.

שימו לב שהמפה כלולה בהצהרת using. זה הכרחי מכיוון שהמפה עוקבת אחר כל המשאבים שנוספו אליה, ומפנה אותם כאשר סיימנו עם העיבוד ואובייקט המפה מפונה.

לאחר מכן, אנו מוסיפים שכבה מקובץ למפה. כל שכבה מעובדת על גבי השכבה הקודמת, בסדר שבו הן נוספו למפה. ראה פרטים נוספים כיצד לפתוח שכבות וקטוריות כאן.

לבסוף, אנו קוראים ל-Map.Render כדי לעבד את המפה לקובץ. אנו מציינים נתיב לשמירת קובץ התוצאה ומעבד לשימוש. מחלקת Renderers מכילה הפניות לכל המעבדים הכלולים ב-Aspose.GIS. לדוגמה, אתה יכול לציין Renderers.Png במקום Renderers.Svg בדוגמה לעיל כדי לעבד את המפה לקובץ PNG

עיצוב מתקדם

עם Aspose.GIS API, אתה יכול להתאים אישית עיבוד וסגנונות תכונות כדי להשיג את המראה הרצוי.

עיצוב מתקדם

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

צייר רסטר במפה

עם Aspose.GIS עבור .NET אתה יכול לעבד מפה מפורמטים של רסטר.

עיבוד עם הגדרות ברירת מחדל

הנה איך לעבד מפה מ-GeoTIFF ל-SVG באמצעות הגדרות ברירת מחדל:

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

רסטר ברירת מחדל

עיבוד רסטרים עקומים

עם Aspose.GIS אתה יכול לעבד רסטר עם תאי רסטר עקומים.

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

רסטר עקום

עיבוד בהפניית מרחב קוטבית

Aspose.GIS מאפשר לך להשתמש בהפניות מרחב קוטביות בתהליך עיבוד מפות.

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

מדינות גנומוניות