วิธีสร้าง Shapefile ใน C#

บทช่วยสอนฉบับย่อนี้จะอธิบาย วิธีสร้าง Shapefile ใน C# โดยไม่ต้องติดตั้งเครื่องมือของบุคคลที่สาม คุณสามารถสร้างเลเยอร์เวกเตอร์ได้โดยใช้ไดรเวอร์ Shapefile อย่างไรก็ตามมีตัวเลือกอื่น ๆ มากมายสำหรับสร้างเลเยอร์เวกเตอร์ประเภทต่าง ๆ คุณสามารถ สร้างไฟล์ SHP ใน C# โดยเพิ่มแอตทริบิวต์ จุดเรขาคณิต และคุณสมบัติในเลเยอร์เวกเตอร์ที่บันทึกเป็นไฟล์ SHP

ขั้นตอนในการสร้าง Shapefile ใหม่ใน C#

  1. กำหนดค่าสภาพแวดล้อมการพัฒนาเพื่อเพิ่ม Aspose.GIS for .NET จาก Nuget package manager
  2. สร้างเลเยอร์เวกเตอร์โดยใช้วัตถุ VectorLayer class โดยระบุชื่อไฟล์ SHP และไดรเวอร์ที่เกี่ยวข้อง
  3. ตั้งค่าแอตทริบิวต์ต่างๆ ให้กับคอลเลกชันแอตทริบิวต์ในเลเยอร์เวกเตอร์ที่สร้างขึ้นใหม่
  4. สร้าง feature โดยใช้ฟังก์ชัน ConstructFeature ในวัตถุ VectorLayer
  5. สร้างอินสแตนซ์ของวัตถุคลาส Point และตั้งค่าคุณสมบัติ Geometry ของคุณสมบัติใหม่
  6. เพิ่มคุณสมบัตินี้ในเลเยอร์เวกเตอร์

ขั้นตอนเหล่านี้สำรวจกระบวนการ วิธีสร้าง 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 #

 ไทย