แปลง OSM เป็น KML ใน C#

OpenStreetMap (OSM) เป็นโครงการโอเพ่นซอร์ส มีจุดมุ่งหมายเพื่อสร้างฐานข้อมูลทางภูมิศาสตร์ของโลกทั้งใบที่สามารถแก้ไขได้ฟรี ไฟล์ OpenStreetMap (.osm) เป็นสารสกัดจากฐานข้อมูล OpenStreetMap ที่จัดเก็บในรูปแบบ XML ในบางกรณี เราอาจต้องส่งออกข้อมูลแผนที่จาก OSM เพื่อแสดงบน Google Earth Google Earth ใช้ไฟล์ KML เพื่อแสดงข้อมูลทางภูมิศาสตร์ ในบทความนี้ เราจะเรียนรู้วิธีการแปลง OSM เป็น KML ใน C#

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

  1. ตัวแปลง C# OSM เป็น KML
  2. ขั้นตอนในการแปลง OSM เป็น KML
  3. แปลง OSM เป็น KML

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

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

API มีคลาส VectorLayer ที่แสดงถึงเลเยอร์เวกเตอร์ มี Convert(string, FileDriver, string, FileDriver, ConversionOptions) ที่แปลงเลเยอร์เป็นรูปแบบอื่น คลาส SpatialReferenceSystem จัดเตรียมรายการระบบอ้างอิงเชิงพื้นที่ต่างๆ เพื่อใช้สำหรับแผนที่

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

PM> Install-Package Aspose.GIS

วิธีแปลง OSM เป็น KML ใน C#

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

  1. กำหนดการอ้างอิงเชิงพื้นที่ Wgs84 ให้กับเลเยอร์ปลายทาง
  2. แปลงรูปแบบไฟล์จาก OSM เป็น KML

ส่วนต่อไปนี้จะอธิบายวิธีแปลงขั้นตอนเหล่านี้เป็น C# และแปลง OSM เป็นรูปแบบ KML

แปลง OSM เป็น KML ใน C#

เราสามารถส่งออกข้อมูลจาก OSM ไปยัง KML โดยทำตามขั้นตอนด้านล่าง:

  1. ประการแรก สร้างอินสแตนซ์ของคลาส ConversionOptions
  2. หลังจากนั้น ให้ตั้งค่า DestinationSpatialReferenceSystem เป็น Wgs84
  3. สุดท้าย เรียกเมธอด VectorLayer.Convert() เพื่อแปลง OSM ต้นทางเป็น KML

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแปลง OSM เป็น KML โดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีแปลง OSM เป็น KML
// ระบุการตั้งค่าการแปลงหากจำเป็น เป็นทางเลือก
ConversionOptions options = null;

// ตัวเลือกนี้กำหนด Wgs84 ให้กับเลเยอร์ปลายทาง
// การแปลงอาจเกิดข้อผิดพลาด หากเลเยอร์ปลายทางไม่รองรับการอ้างอิงเชิงพื้นที่ Wgs84 ดังนั้นต้องตรวจสอบ
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// แปลงรูปแบบไฟล์จาก OSM เป็น KML
VectorLayer.Convert("C:\\Files\\sample.osm", Drivers.OsmXml, "C:\\Files\\destination.kml", Drivers.Kml, options);

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

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

บทสรุป

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

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