تحويل جيوجسون توبوجسون csharp

تُستخدم GeoJSON لتمثيل المعالم الجغرافية ذات السمات غير المكانية. حيث أن TopoJSON هو امتداد لـ GeoJSON يستخدم الطوبولوجيا. يمكنك تحويل GeoJSON إلى TopoJSON وكذلك TopoJSON إلى GeoJSON وفقًا لمتطلباتك. دعنا نستكشف حالات الاستخدام التالية بالتفصيل:

GeoJSON و TopoJSON inter-convert - تثبيت C# .NET API

Aspose.GIS for .NET يمكن استخدام API لمعالجة أو تحويل البيانات الجغرافية. يمكنك تكوين 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
    {
        // هناك طريقتان لتعيين معلمات التكميم - باستخدام خاصية التحويل أو
        // مع عدد الكميات. هنا نحدد رقم التكميم.
        // يحدد رقم التكميم عدد القيم التي يمكن التعبير عنها لكل بُعد في النتيجة
        // إحداثيات.
        QuantizationNumber = 100_000,

        // بدلاً من ذلك ، يمكن تعيين خاصية "التحويل" (ولكن ليس في وقت واحد مع رقم التكميم).
        // الرجوع إلى مواصفات TopoJSON لمزيد من التفاصيل حول تحويل الكائن والتكمية.
        //
        // التحويل = TopoJsonTransform (
        //     xTranslate: 0 ،
        //     yTranslate: 0 ،
        //     xScale: 0.0001000010000100001 ،
        //     y المقياس: 0.0001000010000100001) ،
    }
};

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

تحويل TopoJSON إلى GeoJSON برمجيًا في C#

Aspose.GIS for .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 الوثائق. في حالة وجود أي استفسار أو مخاوف ، لا تتردد في مراسلتنا على منتديات الدعم المجاني.

أنظر أيضا