המרת OSM ל-KML ב-C#

OpenStreetMap (OSM) הוא פרויקט בקוד פתוח. מטרתו היא ליצור מסד נתונים גיאוגרפי חינמי שניתן לעריכה של כל העולם. קובץ OpenStreetMap (.osm) הוא תמצית של מסד הנתונים של OpenStreetMap המאוחסן כ-XML. במקרים מסוימים, ייתכן שנצטרך לייצא נתוני מפה מ-OSM להצגה ב-Google Earth. Google Earth משתמש בקבצי KML כדי להציג נתונים גיאוגרפיים. במאמר זה נלמד כיצד להמיר OSM ל-KML ב-C#.

מאמר זה יעסוק בנושאים הבאים:

  1. C# OSM to KML Converter
  2. שלבים להמרת OSM ל-KML
  3. המר OSM ל-KML

C# OSM to KML Converter API - הורדה חינם

להמרת קובץ OpenStreetMap (OSM) ל-KML, נשתמש ב-Aspose.GIS for .NET API. ה-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 עבור .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 באמצעות תיעוד. בכל מקרה של אי בהירות, אנא אל תהסס לפנות אלינו ב[פורום התמיכה החינמי] שלנו19.

ראה גם