convert-geojson-topojson-csharp

GeoJSON משמש לייצוג מאפיינים גיאוגרפיים עם מאפיינים לא מרחביים. ואילו TopoJSON הוא הרחבה של GeoJSON המשתמשת בטופולוגיה. אתה יכול להמיר את GeoJSON ל-TopoJSON כמו גם את TopoJSON ל-GeoJSON לפי הדרישות שלך. תן לנו לחקור את מקרי השימוש הבאים בפירוט:

המרות בין GeoJSON ו-TopoJSON - התקנת API של C# .NET

ניתן להשתמש ב-API Aspose.GIS for .NET כדי לתפעל או להמיר נתונים גיאוגרפיים. אתה יכול בקלות להגדיר את ה-API על ידי הורדת קובץ ה-DLL שלו מהקטע הורדות או דרך הגלריה NuGet עם פקודת ההתקנה הבאה:

PM> Install-Package Aspose.GIS

המר את GeoJSON ל-TopoJSON באופן פרוגרמטי באמצעות C#

המרת קבצים GeoJSON ל-TopoJSON מועילה מכיוון שהיא מקודדת תכונות גיאו-מרחביות וגודל הקובץ קטן יותר. הוא קטן יותר בגודל הקובץ בגלל טופולוגיה וביטול יתירות. יתר על כן, גם כאשר אין טופולוגיה משותפת, הקידוד עם דיוק התיקון יעיל הרבה יותר מקידוד נקודה צפה של פורמט קובץ GeoJSON. אתה יכול להמיר את GeoJSON ל-TopoJSON עם השלבים הבאים:

  1. טען קובץ GeoJSON קלט
  2. המר את GeoJSON ל-TopoJSON

קטע הקוד הבא מראה כיצד להמיר GeoJSON ל-TopoJSON באופן תוכניתי באמצעות C#:

// טען קובץ GeoJSON קלט
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// המרת GeoJSON ל-TopoJSON
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

המרת GeoJSON ל-TopoJSON עם קוונטיזציה באמצעות C#

המרת GeoJSON ל-TopoJSON פופולרית בגלל היעילות ברמת הדיוק הקבועה וגודל הקובץ הקטן יותר. יתר על כן, קוונטיזציה מפחיתה את דיוק הקואורדינטות. כתוצאה מכך, הוא מייעל את גודל הקובץ על ידי ייצוג הקואורדינטות כמספרים שלמים. אז אתה יכול להמיר GeoJSON ל-TopoJSON עם קוונטיזציה עם השלבים הבאים:

  1. אתחול אובייקט המחלקה ConversionOptions
  2. ציין מספר קוונטיזציה
  3. או הגדר את המאפיין טרנספורמציה
  4. המר את GeoJSON ל-TopoJSON עם קוונטיזציה

הקוד שלהלן מראה כיצד להמיר GeoJSON ל-TopoJSON עם קוונטיזציה. הוא מסביר שתי גישות חלופיות להמרה:

// המרת GeoJSON ל-TopoJSON עם קוונטיזציה - הפיכת כפילים למספרים שלמים כדי להקטין את גודל הקובץ.

string SampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSampleWithQuantization_out.topojson";

// אתחול אובייקט המחלקה ConversionOptions
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // ישנן שתי דרכים להגדיר פרמטרים של קוונטיזציה - עם מאפיין Transform or
        // עם מספר קוונטיזציה. כאן אנו מציינים את מספר הקוונטיזציה.
        // מספר קוונטיזציה מציין את מספר הערכים הניתנים לביטוי לכל מימד בתוצאה
        // קואורדינטות.
        QuantizationNumber = 100_000,

        // לחלופין, ניתן להגדיר את המאפיין 'טרנספורמציה' (אך לא בו-זמנית עם מספר הקוונטיזציה).
        // עיין במפרט TopoJSON לפרטים נוספים על טרנספורמציה של אובייקט וקוונטיזציה.
        //
        // טרנספורמציה = חדש TopoJsonTransform(
        //     xתרגום: 0,
        //     yתרגום: 0,
        //     xScale: 0.0001000010000100001,
        //     yscale: 0.0001000010000100001),
    }
};

VectorLayer.Convert(SampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson, options);

המר את TopoJSON ל-GeoJSON באופן פרוגרמטי ב-C#

Aspose.GIS עבור .NET API תומך בהמרת קבצי TopoJSON ל-GeoJSON. אז אתה יכול להוסיף תכונה זו ביישומי NET שלך. יתר על כן, קבצי GeoJSON מועדפים בדרך כלל במניפולציה בצד השרת של גיאומטריות שאינן דורשות טופולוגיות. אתה יכול לבצע את השלבים הבאים להמרת TopoJSON ל-GeoJSON:

  1. טען קובץ TopoJSON קלט
  2. המרת TopoJSON ל GeoJSON

הקוד הבא מראה כיצד להמיר TopoJSON ל-GeoJSON באופן תכנותי באמצעות C#:

// טען קובץ TopoJSON קלט
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// המרת TopoJSON לקובץ GeoJSON
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

סיכום

במאמר זה למדת את ההבדלים וההתאמה של פורמטי הקבצים GeoJSON ו-TopoJSON. יתר על כן, חקרתם כיצד להמיר אותם זה לזה לפי הדרישות שלכם. Aspose.GIS for .NET API יכול לבצע ביעילות ובמהירות את ההמרה ההדדית ביישומים שלך. יתר על כן, אתה יכול ללמוד עוד על ידי ביקור ב-API תיעוד. בכל מקרה של שאילתה או חששות, אנא אל תהסס לכתוב לנו בחזרה בפורומי התמיכה החינמית.

ראה גם