כיצד לצייר גיאומטריה על מפה

Contents
[ ]

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

  • Constructor עבור כל סוג תכונת גיאומטריה שיטה זו כוללת שימוש בקונסטרוקטור מותאם אישית עבור כל סוג תכונת גיאומטריה. לדוגמה, כדי ליצור נקודה, תוכל להשתמש בקוד הבא:
Point point = new Point(40.7128, -74.006);

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

Polygon polygon = new Polygon();

LinearRing ring = new LinearRing();
ring.AddPoint(50.02, 36.22);
ring.AddPoint(49.99, 36.26);
ring.AddPoint(49.97, 36.23);
ring.AddPoint(49.98, 36.17);
ring.AddPoint(50.02, 36.22);

LinearRing hole = new LinearRing();
hole.AddPoint(50.00, 36.22);
hole.AddPoint(49.99, 36.20);
hole.AddPoint(49.98, 36.23);
hole.AddPoint(50.00, 36.24);
hole.AddPoint(50.00, 36.22);

polygon.ExteriorRing = ring;
polygon.AddInteriorRing(hole);

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

  • WKT (Well-Known Text) שיטה זו כוללת יצירת גיאומטריה מטקסט ידוע (WKT), המציע דרך סטנדרטית ליצירת גיאומטריות. הקוד הבא מדגים כיצד ליצור נקודה וקו:
var point = Geometry.FromText("POINT (23.5, 25.3)");
var line = Geometry.FromText("LINESTRING Z (0.1 0.2 0.3, 1 2 1, 12 23 2)");

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

תוכל למצוא פרטים נוספים על WKT במאמר הבא: “ייצוא וייבוא נתונים מ/אל WKT ו-WKB”.

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

כדי להציג את האובייקט הגיאומטרי שלך, תוכל ליצור InMemoryLayer ולהוסיף את האובייקט אליו:

using (var layer = Drivers.InMemory.CreateLayer())
{
     Feature feature = layer.ConstructFeature();
     feature.Geometry = Geometry.FromText("POINT (23.5, 25.3)");
     layer.Add(feature);
}

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

using (var map = new Map(500, 500))
{
     map.Add(layer);
     map.Render(filesPath, Renderers.Svg);
}

לאחר שהוספת את השכבה והצגתה על המפה, תוכל לשמור אותה בכל אחד מהפורמטים הנתמכים. בדוגמה זו, פורמט SVG נבחר כדי להימנע מבעיות פוטנציאליות עם תמיכת Bitmap. חשוב לציין של-Net 6.0 יש תמיכה מוגבלת ב-Bitmap, אשר עלולה לגרום להגבלות כמו חוסר יכולת לעבד תמונות Bitmap באמצעות Blazor WebAsm בצד הלקוח. לכן, בעת בחירת פורמט לשמירת המפה שלך, חשוב לקחת בחשבון את מגבלות הפלטפורמה היעד ולבחור פורמט התואם לה.

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

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