วิธีวาดรูปทรงเรขาคณิตบนแผนที่
ในการสร้างและแสดงวัตถุทางเรขาคณิตบนแผนที่ คุณต้องเริ่มต้นด้วยการ สร้างออบเจ็กต์รูปทรงเรขาคณิต มีสองวิธีที่คุณสามารถใช้ได้:
- Constructor สำหรับ Geometry Feature Type แต่ละประเภท วิธีนี้เกี่ยวข้องกับการใช้ constructor ที่กำหนดเองสำหรับ geometry feature type แต่ละประเภท ตัวอย่างเช่น ในการสร้างจุด คุณจะต้องใช้โค้ดต่อไปนี้:
Point point = new Point(40.7128, -74.006);
อย่างไรก็ตาม วิธีนี้อาจกลายเป็นเรื่องที่ท้าทายและยุ่งยากในการจัดการเมื่อสร้างออบเจ็กต์ที่ซับซ้อน เช่น polylines หรือ collections เป็นผลให้ นักพัฒนาอาจต้องเพิ่มบรรทัดของโค้ดจำนวนมาก ทำให้ความสามารถในการอ่านโค้ดลดลง การรับประกันความสมบูรณ์ของข้อมูลระหว่างการเริ่มต้นก็เป็นเรื่องยากเช่นกัน ตัวอย่างเช่น พิจารณาตัวอย่างต่อไปนี้ที่สร้างรูปหลายเหลี่ยมที่มีรูอยู่ภายใน:
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 (Well-Known Text) ซึ่งนำเสนอวิธีการที่เป็นมาตรฐานในการสร้างรูปทรงเรขาคณิต โค้ดต่อไปนี้แสดงให้เห็นถึงวิธีการสร้างจุดและเส้น:
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 ได้ในบทความต่อไปนี้: “Exporting and Importing Data from/to WKT and 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 ซึ่งให้ข้อมูลโดยละเอียดเกี่ยวกับวิธีการใช้เทคนิคการจัดรูปแบบต่างๆ เพื่อเพิ่มรูปลักษณ์ที่สวยงามของแผนที่ของคุณ
กล่าวโดยสรุป ในการสร้างวัตถุทางเรขาคณิตบนแผนที่ คุณสามารถใช้ constructor สำหรับ geometry feature type แต่ละประเภท หรือสร้างรูปทรงเรขาคณิตจาก WKT หากต้องการแสดงออบเจ็กต์ ให้วางไว้ในเลเยอร์และแสดงเลเยอร์บนแผนที่ด้วยสไตล์แผนที่เริ่มต้น บันทึกแผนที่เป็นรูปแบบที่รองรับ เช่น SVG และใช้ไลบรารีของเราเพื่อสำรวจตัวเลือกการจัดรูปแบบ นอกจากนี้ ไลบรารีของเรายังมีโอกาสที่จะเห็นตัวอย่างสำเร็จรูปโดยคลิกที่ ลิงก์ ที่ให้ไว้ในเอกสารประกอบ ซึ่งสามารถช่วยคุณในการทำความเข้าใจวิธีการใช้เทคนิคเหล่านี้ในโปรเจ็กต์ของคุณเอง