บทช่วยสอนฉบับย่อนี้จะอธิบาย วิธีสร้าง Shapefile ใน C# โดยไม่ต้องติดตั้งเครื่องมือของบุคคลที่สาม คุณสามารถสร้างเลเยอร์เวกเตอร์ได้โดยใช้ไดรเวอร์ Shapefile อย่างไรก็ตามมีตัวเลือกอื่น ๆ มากมายสำหรับสร้างเลเยอร์เวกเตอร์ประเภทต่าง ๆ คุณสามารถ สร้างไฟล์ SHP ใน C# โดยเพิ่มแอตทริบิวต์ จุดเรขาคณิต และคุณสมบัติในเลเยอร์เวกเตอร์ที่บันทึกเป็นไฟล์ SHP
ขั้นตอนในการสร้าง Shapefile ใหม่ใน C#
- กำหนดค่าสภาพแวดล้อมการพัฒนาเพื่อเพิ่ม Aspose.GIS for .NET จาก Nuget package manager
- สร้างเลเยอร์เวกเตอร์โดยใช้วัตถุ VectorLayer class โดยระบุชื่อไฟล์ SHP และไดรเวอร์ที่เกี่ยวข้อง
- ตั้งค่าแอตทริบิวต์ต่างๆ ให้กับคอลเลกชันแอตทริบิวต์ในเลเยอร์เวกเตอร์ที่สร้างขึ้นใหม่
- สร้าง feature โดยใช้ฟังก์ชัน ConstructFeature ในวัตถุ VectorLayer
- สร้างอินสแตนซ์ของวัตถุคลาส Point และตั้งค่าคุณสมบัติ Geometry ของคุณสมบัติใหม่
- เพิ่มคุณสมบัตินี้ในเลเยอร์เวกเตอร์
ขั้นตอนเหล่านี้สำรวจกระบวนการ วิธีสร้าง Shapefile ใน C# โดยให้รายละเอียดการกำหนดค่า คลาสที่จำเป็น เนมสเปซ และวิธีการที่จำเป็นในการพัฒนาแอปพลิเคชัน ที่นี่มีการแบ่งปันวิธีการแบบขั้นตอนสำหรับการพัฒนาแอปพลิเคชันเพื่อสร้าง Shapefile ใน C # โดยขั้นแรกจะสร้างเลเยอร์เวกเตอร์ประเภท Shapefile แล้วจึงเพิ่มแอตทริบิวต์ต่างๆ ลงไป ในทำนองเดียวกัน สำหรับรูปร่างเวกเตอร์ที่สร้างขึ้นใหม่ คุณลักษณะจะถูกสร้างขึ้น จากนั้นจึงตั้งค่าตำแหน่งทางเรขาคณิตและคุณลักษณะ
รหัสเพื่อสร้างไฟล์รูปร่างใน C
using System; | |
using Aspose.Gis; | |
namespace AsposeProjects | |
{ | |
class Program | |
{ | |
static void Main(string[] args) // Main function to create a Shapefile in C# | |
{ | |
// Initialize a license | |
Aspose.Gis.License lic = new Aspose.Gis.License(); | |
lic.SetLicense(@"Aspose.Total.lic"); | |
// Create a vector layer | |
using (VectorLayer vecLayer = VectorLayer.Create("sample.shp", Drivers.Shapefile)) | |
{ | |
// Set attributes | |
vecLayer.Attributes.Add(new FeatureAttribute("ProductName", AttributeDataType.String)); | |
vecLayer.Attributes.Add(new FeatureAttribute("City", AttributeDataType.String)); | |
vecLayer.Attributes.Add(new FeatureAttribute("Price", AttributeDataType.Integer)); | |
vecLayer.Attributes.Add(new FeatureAttribute("Expiry", AttributeDataType.DateTime)); | |
// Set features | |
Feature firstFeature = vecLayer.ConstructFeature(); | |
firstFeature.Geometry = new Aspose.Gis.Geometries.Point(34.02, 71.52); | |
firstFeature.SetValue("ProductName", "Butter"); | |
firstFeature.SetValue("City", "Peshawar"); | |
firstFeature.SetValue("Price", 300); | |
firstFeature.SetValue("Expiry", new DateTime(2022, 12,15)); | |
// Add feature to the layer | |
vecLayer.Add(firstFeature); | |
} | |
System.Console.WriteLine("Done"); | |
} | |
} | |
} |
รหัสนี้ใช้ตัวเลือก Drivers.Shapefile เพื่อสร้างเลเยอร์เวกเตอร์ อย่างไรก็ตาม คุณสามารถใช้ตัวเลือกอื่นเช่น GeoJson, Kml, Gpx, Gml, TopoJson เป็นต้น เพื่อสร้างเลเยอร์เวกเตอร์ประเภทต่างๆ คลาส Vectorlayer นี้ไม่เพียงแต่มีแอตทริบิวต์และฟีเจอร์เท่านั้น แต่ยังมีตัวเลือกการแปลงมากมายด้วย ซึ่งคุณสามารถแปลงเลเยอร์เป็นรูปแบบต่างๆ ได้
บทช่วยสอนนี้สอนให้เรา สร้างไฟล์รูปร่างใน C# อย่างไรก็ตาม หากคุณสนใจที่จะแปลง SHP เป็นรูปแบบ GPX โปรดดูบทความใน วิธีแปลง SHP เป็น GPX ใน C #