เชี่ยวชาญการวางซ้อนเรขาคณิตด้วย Aspose.GIS สำหรับ .NET

การแนะนำ

ในขอบเขตของระบบสารสนเทศภูมิศาสตร์ (GIS) การดำเนินการซ้อนทับเป็นพื้นฐานสำหรับการวิเคราะห์เชิงพื้นที่ ช่วยให้สามารถเปรียบเทียบและรวมชุดข้อมูลเชิงพื้นที่ต่างๆ เข้าด้วยกันเพื่อให้ได้ข้อมูลเชิงลึกที่มีคุณค่า Aspose.GIS สำหรับ .NET มีฟังก์ชันการทำงานที่มีประสิทธิภาพสำหรับการแสดงภาพซ้อนทับทางเรขาคณิตอย่างมีประสิทธิภาพ ในบทช่วยสอนนี้ เราจะเจาะลึกการดำเนินการซ้อนทับต่างๆ เช่น Intersection, Union, Difference และ Symmetric Difference โดยใช้ Aspose.GIS สำหรับ .NET

ข้อกำหนดเบื้องต้น

ก่อนที่จะเข้าสู่บทช่วยสอน ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นต่อไปนี้:

1. สภาพแวดล้อมการพัฒนา .NET

ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าสภาพแวดล้อมการพัฒนา .NET บนเครื่องของคุณ คุณสามารถดาวน์โหลดและติดตั้ง .NET SDK ได้จากเว็บไซต์ .NET

2. Aspose.GIS สำหรับไลบรารี .NET

ดาวน์โหลดและติดตั้งไลบรารี Aspose.GIS สำหรับ .NET จากไฟล์เว็บไซต์.

นำเข้าเนมสเปซ

ก่อนที่คุณจะเริ่มใช้ Aspose.GIS สำหรับ .NET ได้ คุณจะต้องนำเข้าเนมสเปซที่จำเป็นลงในโปรเจ็กต์ของคุณก่อน

using Aspose.Gis.Geometries;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

ขั้นตอนที่ 1: สร้างวัตถุรูปหลายเหลี่ยม

ขั้นแรก เราจะกำหนดวัตถุรูปหลายเหลี่ยมสองชิ้นที่แสดงถึงพื้นที่เชิงพื้นที่

var polygon1 = new Polygon();
polygon1.ExteriorRing = new LinearRing(new[]
{
	 new Point(0, 0),
	 new Point(0, 2),
	 new Point(2, 2),
	 new Point(2, 0),
	 new Point(0, 0),
 });
var polygon2 = new Polygon();
polygon2.ExteriorRing = new LinearRing(new[]
{
	new Point(1, 1),
	new Point(1, 3),
	new Point(3, 3),
	new Point(3, 1),
	new Point(1, 1),
});

ขั้นตอนที่ 2: ดำเนินการทางแยก

ต่อไป เราจะหาจุดตัดของรูปหลายเหลี่ยมทั้งสอง

var intersection = polygon1.Intersection(polygon2);
Console.WriteLine("Intersection type is {0}", intersection.GeometryType); // รูปหลายเหลี่ยม

ขั้นตอนที่ 3: พิมพ์จุดตัดกัน

เราจะพิมพ์จุดของรูปหลายเหลี่ยมที่ตัดกัน

PrintRing(((IPolygon)intersection).ExteriorRing);

ขั้นตอนที่ 4: ดำเนินการปฏิบัติการสหภาพ

ทีนี้ เรามาค้นหาการรวมกันของสองรูปหลายเหลี่ยมกัน

var union = polygon1.Union(polygon2);
Console.WriteLine("Union type is {0}", union.GeometryType); // รูปหลายเหลี่ยม

ขั้นตอนที่ 5: พิมพ์คะแนนยูเนี่ยน

พิมพ์จุดของรูปหลายเหลี่ยมแบบยูเนี่ยน

PrintRing(((IPolygon)union).ExteriorRing);

ขั้นตอนที่ 6: ดำเนินการดำเนินการแตกต่าง

ต่อไป เรามาดูความแตกต่างระหว่างรูปหลายเหลี่ยมสองรูปนี้กัน

var difference = polygon1.Difference(polygon2);
Console.WriteLine("Difference type is {0}", difference.GeometryType); // รูปหลายเหลี่ยม

ขั้นตอนที่ 7: พิมพ์จุดแตกต่าง

พิมพ์จุดของรูปหลายเหลี่ยมส่วนต่าง

PrintRing(((IPolygon)difference).ExteriorRing);

ขั้นตอนที่ 8: ดำเนินการผลต่างสมมาตร

สุดท้ายนี้ เรามาดูความแตกต่างแบบสมมาตรระหว่างรูปหลายเหลี่ยมสองรูปนี้กัน

var symDifference = polygon1.SymDifference(polygon2);
Console.WriteLine("Symmetric Difference type is {0}", symDifference.GeometryType); // มัลติโพลิกอน

ขั้นตอนที่ 9: พิมพ์รูปหลายเหลี่ยมส่วนต่างสมมาตร

พิมพ์จุดของแต่ละรูปหลายเหลี่ยมด้วยผลต่างสมมาตร

var multiPolygon = (IMultiPolygon)symDifference;
Console.WriteLine("Polygons count is {0}", multiPolygon.Count); // 2
PrintRing(((IPolygon)multiPolygon[0]).ExteriorRing);
PrintRing(((IPolygon)multiPolygon[1]).ExteriorRing);

บทสรุป

การเรียนรู้การซ้อนทับเรขาคณิตเป็นสิ่งสำคัญในการวิเคราะห์เชิงพื้นที่ และ Aspose.GIS สำหรับ .NET มอบชุดเครื่องมือที่ครอบคลุมเพื่อดำเนินการเหล่านี้อย่างมีประสิทธิภาพ เมื่อทำตามบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้ Aspose.GIS สำหรับ .NET เพื่อดำเนินการตัดกัน การรวม ผลต่าง และผลต่างสมมาตรบนรูปทรงเรขาคณิต

คำถามที่พบบ่อย

ถาม: ฉันสามารถใช้ Aspose.GIS สำหรับ .NET ในโครงการเชิงพาณิชย์ของฉันได้หรือไม่

ใช่ Aspose.GIS สำหรับ .NET สามารถใช้ได้ทั้งในโครงการเชิงพาณิชย์และไม่ใช่เชิงพาณิชย์

ถาม: Aspose.GIS สำหรับ .NET มีเวอร์ชันทดลองใช้งานหรือไม่

ใช่ คุณสามารถดาวน์โหลดเวอร์ชันทดลองใช้ฟรีได้จากที่นี่.

ถาม: ฉันจะรับการสนับสนุน Aspose.GIS สำหรับ .NET ได้อย่างไร

คุณสามารถรับการสนับสนุนจากฟอรัมชุมชน Aspose.GISที่นี่.

ถาม: มีใบอนุญาตชั่วคราวสำหรับ Aspose.GIS สำหรับ .NET หรือไม่

ใช่ ใบอนุญาตชั่วคราวมีไว้เพื่อการทดสอบและประเมินผล คุณสามารถรับได้จากที่นี่.

ถาม: ฉันสามารถซื้อ Aspose.GIS สำหรับ .NET ได้โดยตรงหรือไม่

ใช่ คุณสามารถซื้อ Aspose.GIS สำหรับ .NET ได้จากเว็บไซต์ที่นี่.