تبدیل Shapefile به SVG در سی شارپ

فرمت Shapefile یکی از رایج‌ترین فرمت‌های داده‌های برداری جغرافیایی ESRI است که برای نمایش اطلاعات جغرافیایی استفاده می‌شود. در موارد خاص، ممکن است لازم باشد داده‌های جغرافیایی را از قالب ESRI Shapefile (SHP) به قالب SVG صادر کنیم. SVG یک قالب متنی مبتنی بر XML برای توصیف ظاهر یک تصویر است. در این مقاله با نحوه تبدیل شکل فایل به SVG در سی شارپ آشنا می شویم.

این مقاله باید موضوعات زیر را پوشش دهد:

  1. تبدیل C# Shapefile به SVG
  2. مراحل تبدیل Shapefile به SVG
  3. رندر ShapeFile به SVG

C# Shapefile to SVG Converter API - دانلود رایگان

برای تبدیل شکل فایل به SVG، از API Aspose.GIS برای .NET استفاده خواهیم کرد. این اجازه می دهد تا فایل شیپ را به SVG بدون نیاز به نرم افزارهایی مانند ArcGIS، ArcMap، QGIS یا Google Earth صادر کنید. API همچنین امکان ارائه نقشه ها، ایجاد، خواندن و تبدیل داده های جغرافیایی موجود در [فرمت های فایل پشتیبانی شده] را فراهم می کند.

کلاس Map API مجموعه‌ای از لایه‌ها است که می‌توانند از طریق Renderer روی هم رندر شوند. کلاس SpatialReferenceSystem فهرستی از سیستم های مرجع مکانی مختلف را برای استفاده برای نقشه ارائه می کند. ما می‌توانیم با استفاده از کلاس SimpleLine یک نمادساز خط برداری ساده تعریف کنیم. ما کلاس VectorLayer را داریم که نمایانگر یک لایه برداری در API است. با استفاده از روش Open(string, FileDriver) از این کلاس می‌توانیم shapefile را در یک لایه برداری بارگذاری کنیم. لایه را برای خواندن باز می کند.

لطفاً DLL API را دانلود یا با استفاده از NuGet نصب کنید.

PM> Install-Package Aspose.GIS

نحوه تبدیل Shapefile به SVG در سی شارپ

ما به راحتی می توانیم با دنبال کردن مراحل زیر با استفاده از Aspose.GIS برای دات نت یک شکل فایل را به SVG تبدیل کنیم:

  1. مقداردهی اولیه نقشه
  2. مرجع فضایی Wgs84 را به نقشه اختصاص دهید.
  3. یک شکل فایل را به صورت لایه برداری باز کنید.
  4. لایه shapefile را به نقشه اضافه کنید.
  5. نقشه را با فرمت SVG رندر کنید.

حال، بیایید ببینیم چگونه می توان این مراحل را به کد C# تبدیل کرد و یک فایل shapefile را به فرمت SVG تبدیل کرد.

رندر ShapeFile به SVG در سی شارپ

لطفاً مراحل زیر را برای رندر کردن یک شکل فایل به صورت SVG دنبال کنید:

  1. ابتدا یک نمونه از کلاس Map ایجاد کنید.
  2. سپس SpatialReferenceSystem را به عنوان Wgs84 تنظیم کنید.
  3. سپس با استفاده از کلاس SimpleLine یک نماد خط ساده تعریف کنید.
  4. در همین حال، یک شکل فایل را با استفاده از متد ()VectorLayer.Open بارگذاری کنید.
  5. پس از آن، لایه shapefile را با استفاده از متد Map.Add() به نقشه اضافه کنید.
  6. در نهایت متد Map.Render() را فراخوانی کنید تا به صورت SVG ذخیره شود. مسیر فایل خروجی SVG و Renderers.Svg را به عنوان آرگومان می گیرد.

نمونه کد زیر نحوه تبدیل یک شکل فایل به SVG با استفاده از سی شارپ را نشان می دهد.

// این مثال کد نحوه تبدیل یک شکل فایل به SVG را نشان می دهد.
// دایرکتوری فایل ها
string dataDir = "C:\\Files\\GIS\\";

// نقشه را راه اندازی کنید
var map = new Map(800, 400);

// از SRS مشخص شده استفاده کنید
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// از سبک مشخص شده برای کشیدن خطوط استفاده کنید
// ما همچنین سبک هایی برای نقاط، خطوط و سطوح داریم.
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// یک شکل فایل را به صورت لایه باز کنید
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// لایه shapefile را به نقشه اضافه کنید
map.Add(shapefileLayer, symbolizer);

// نقشه را به فرمت Svg رندر کنید
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

مجوز رایگان دریافت کنید

می‌توانید [یک مجوز موقت رایگان] دریافت کنید20 تا کتابخانه را بدون محدودیت ارزیابی امتحان کنید.

نتیجه

در این مقاله با نحوه تبدیل شکل فایل به SVG در سی شارپ آشنا شدیم. ما همچنین نحوه تعریف نقشه و بارگذاری یک شکل فایل را به صورت برنامه‌ریزی دیده‌ایم. علاوه بر این، می‌توانید نحوه کار با چندین فرمت فایل GIS دیگر را بررسی کنید و با استفاده از مستندات درباره API اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه ابهام، لطفاً با ما در [تالار گفتمان پشتیبانی رایگان22 تماس بگیرید.

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