แปลง Shapefile เป็น SVG ใน C#

รูปแบบ Shapefile เป็นหนึ่งในรูปแบบข้อมูลเวกเตอร์เชิงพื้นที่ทั่วไปของ ESRI ที่ใช้เพื่อแสดงข้อมูลทางภูมิศาสตร์ ในบางกรณี เราอาจต้องส่งออกข้อมูลทางภูมิศาสตร์จากรูปแบบ ESRI Shapefile (SHP) เป็นรูปแบบ SVG SVG เป็นรูปแบบข้อความที่ใช้ XML สำหรับอธิบายลักษณะที่ปรากฏของรูปภาพ ในบทความนี้ เราจะเรียนรู้วิธีแปลงไฟล์รูปร่างเป็น SVG ใน C#

บทความนี้จะครอบคลุมหัวข้อต่อไปนี้:

  1. ตัวแปลง C# Shapefile เป็น SVG
  2. ขั้นตอนในการแปลง Shapefile เป็น SVG
  3. เรนเดอร์ ShapeFile เป็น SVG

C# Shapefile เป็น SVG Converter API - ดาวน์โหลดฟรี

ในการแปลงไฟล์รูปร่างเป็น SVG เราจะใช้ API Aspose.GIS for .NET อนุญาตให้ส่งออกไฟล์รูปร่างเป็น SVG โดยไม่ต้องใช้ซอฟต์แวร์ เช่น ArcGIS, ArcMap, QGIS หรือ Google Earth API ยังอนุญาตให้แสดงแผนที่ สร้าง อ่าน และแปลงข้อมูลทางภูมิศาสตร์ที่มีอยู่ใน รูปแบบไฟล์ที่รองรับ

คลาส Map ของ API คือชุดของเลเยอร์ที่สามารถแสดงซ้อนกันผ่าน Renderer คลาส SpatialReferenceSystem จัดเตรียมรายการระบบอ้างอิงเชิงพื้นที่ต่างๆ เพื่อใช้สำหรับแผนที่ เราสามารถกำหนดสัญลักษณ์เส้นเวกเตอร์อย่างง่ายโดยใช้คลาส SimpleLine เรามีคลาส VectorLayer ที่แสดงถึงเลเยอร์เวกเตอร์ใน API เราสามารถโหลดไฟล์รูปร่างลงในเลเยอร์เวกเตอร์โดยใช้เมธอด Open(string, FileDriver) ของคลาสนี้ มันเปิดชั้นสำหรับการอ่าน

โปรด ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet

PM> Install-Package Aspose.GIS

วิธีแปลง Shapefile เป็น SVG ใน C#

เราสามารถแปลงไฟล์รูปร่างเป็น SVG โดยใช้ Aspose.GIS for .NET โดยทำตามขั้นตอนด้านล่าง:

  1. เริ่มต้นแผนที่
  2. กำหนดการอ้างอิงเชิงพื้นที่ Wgs84 ให้กับแผนที่
  3. เปิดไฟล์รูปร่างเป็นเลเยอร์เวกเตอร์
  4. เพิ่มเลเยอร์ไฟล์รูปร่างลงในแผนที่
  5. แสดงแผนที่ในรูปแบบ SVG

ตอนนี้ มาดูวิธีการแปลงขั้นตอนเหล่านี้เป็นรหัส C# และแปลงไฟล์รูปร่างเป็นรูปแบบ SVG

แสดงผล ShapeFile เป็น SVG ใน C#

โปรดทำตามขั้นตอนด้านล่างเพื่อแสดงรูปร่างไฟล์เป็น SVG:

  1. ขั้นแรก สร้างอินสแตนซ์ของคลาสแผนที่
  2. จากนั้นตั้งค่า SpatialReferenceSystem เป็น Wgs84
  3. จากนั้นกำหนดสัญลักษณ์เส้นอย่างง่ายโดยใช้คลาส SimpleLine
  4. ในขณะเดียวกัน ให้โหลดไฟล์รูปร่างโดยใช้เมธอด VectorLayer.Open()
  5. หลังจากนั้นให้เพิ่มเลเยอร์ไฟล์รูปร่างลงในแผนที่โดยใช้เมธอด Map.Add()
  6. สุดท้าย เรียกใช้เมธอด Map.Render() เพื่อบันทึกเป็น SVG ใช้เส้นทางไฟล์ SVG เอาต์พุตและ Renderers.Svg เป็นอาร์กิวเมนต์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแปลงไฟล์รูปร่างเป็น SVG โดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการแปลงไฟล์รูปร่างเป็น SVG
// ไดเร็กทอรีไฟล์
string dataDir = "C:\\Files\\GIS\\";

// เริ่มต้นแผนที่
var map = new Map(800, 400);

// ใช้ SRS ที่ระบุ
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// ใช้สไตล์ที่กำหนดเพื่อวาดเส้น
// เรายังมีสไตล์สำหรับจุด เส้น และพื้นผิวอีกด้วย
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// เปิดไฟล์รูปร่างเป็นเลเยอร์
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// เพิ่มเลเยอร์ไฟล์รูปร่างลงในแผนที่
map.Add(shapefileLayer, symbolizer);

// แสดงแผนที่เป็นรูปแบบ Svg
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวฟรี เพื่อทดลองใช้ห้องสมุดโดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

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

ดูสิ่งนี้ด้วย