convert-geojson-topojson-csharp

GeoJSON برای نمایش ویژگی‌های جغرافیایی با ویژگی‌های غیرمکانی استفاده می‌شود. در حالی که، TopoJSON یک توسعه دهنده GeoJSON است که از توپولوژی استفاده می کند. شما می توانید GeoJSON را به TopoJSON و همچنین TopoJSON را به GeoJSON بر اساس نیاز خود تبدیل کنید. اجازه دهید موارد استفاده زیر را با جزئیات بررسی کنیم:

تبدیل بین GeoJSON و TopoJSON – نصب API C#.NET

Aspose.GIS for .NET API را می توان برای دستکاری یا تبدیل داده های جغرافیایی استفاده کرد. با دانلود فایل DLL آن از بخش Downloads یا از طریق گالری NuGet با دستور نصب زیر می‌توانید API را به راحتی پیکربندی کنید:

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 با Quantization با استفاده از C#

تبدیل GeoJSON به TopoJSON به دلیل کارایی با دقت ثابت و اندازه فایل کمتر محبوب است. علاوه بر این، کوانتیزه کردن دقت مختصات را کاهش می دهد. در نتیجه، اندازه فایل را با نمایش مختصات به صورت اعداد صحیح بهینه می کند. بنابراین می توانید GeoJSON را با کوانتیزاسیون با مراحل زیر به TopoJSON تبدیل کنید:

  1. شی کلاس ConversionOptions را راه اندازی کنید
  2. Quantization Number را مشخص کنید
  3. یا ویژگی Transform را تنظیم کنید
  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 یا
        // با عدد کوانتیزاسیون در اینجا عدد کوانتیزاسیون را مشخص می کنیم.
        // عدد کوانتیزاسیون تعداد مقادیر قابل بیان در هر بعد را در یک نتیجه مشخص می کند
        // مختصات
        QuantizationNumber = 100_000,

        // از طرف دیگر، ویژگی "Transform" را می توان تنظیم کرد (اما نه به طور همزمان با عدد کوانتیزاسیون).
        // برای جزئیات بیشتر در مورد شی تبدیل و کوانتیزه کردن به مشخصات TopoJSON مراجعه کنید.
        //
        // Transform = جدید TopoJsonTransform(
        //     xTranslate: 0،
        //     yTranslate: 0،
        //     xScale: 0.0001000010000100001،
        //     مقیاس y: 0.0001000010000100001)،
    }
};

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

تبدیل TopoJSON به GeoJSON به صورت برنامه نویسی در سی شارپ

Aspose.GIS for .NET API از تبدیل فایل TopoJSON به GeoJSON پشتیبانی می کند. بنابراین می توانید این ویژگی را در برنامه های دات نت خود اضافه کنید. علاوه بر این، فایل 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 اسناد اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه سوال یا نگرانی، لطفاً در [تالار گفتمان پشتیبانی رایگان8 با ما تماس بگیرید.

همچنین ببینید