ممکن است دادههای جغرافیایی را در قالبهای مختلفی در اختیار داشته باشیم که توسط سیستمهای مختلف پشتیبانی میشوند. در موارد خاص، ممکن است لازم باشد دادههای جغرافیایی را از قالب ESRI Shapefile (SHP) به قالب Keyhole Markup Language (KML) صادر کنیم. فرمت Shapefile یکی از رایجترین فرمتهای دادههای برداری جغرافیایی ESRI است که برای نمایش اطلاعات جغرافیایی استفاده میشود. KML یک فرمت مبتنی بر XML است که برای به اشتراک گذاری داده های جغرافیایی با کاربران غیر GIS استفاده می شود. فرمت KML برای نمایش داده های جغرافیایی در Google Earth یا Google Maps استفاده می شود. در این مقاله با نحوه تبدیل شکل فایل به KML در سی شارپ آشنا می شویم.
این مقاله باید موضوعات زیر را پوشش دهد:
C# Shapefile to KML Converter API - دانلود رایگان
برای تبدیل یک شکل فایل به KML، از API Aspose.GIS برای NET استفاده خواهیم کرد. این اجازه می دهد تا فایل شیپ را به KML بدون نیاز به نرم افزارهایی مانند ArcGIS، ArcMap، QGIS یا Google Earth صادر کنید. API همچنین امکان ارائه نقشه ها، ایجاد، خواندن و تبدیل داده های جغرافیایی موجود در [فرمت های فایل پشتیبانی شده] را فراهم می کند.
کلاس ConversionOptions API گزینه هایی را برای تبدیل داده ها بین فرمت ها ارائه می دهد. کلاس SpatialReferenceSystem فهرستی از سیستم های مرجع فضایی مختلف را برای استفاده در نقشه برداری مختصات مکان های روی زمین ارائه می دهد. ما کلاس VectorLayer را داریم که نمایانگر یک لایه برداری در API است. متد Convert(string, FileDriver, string, FileDriver, ConversionOptions) این کلاس یک لایه را به فرمت دیگری تبدیل می کند.
لطفاً DLL API را دانلود یا با استفاده از NuGet نصب کنید.
PM> Install-Package Aspose.GIS
نحوه تبدیل Shapefile به KML در سی شارپ
با دنبال کردن مراحل زیر میتوانیم به راحتی یک شکل فایل را با استفاده از Aspose.GIS برای داتنت به KML تبدیل کنیم:
- مرجع فضایی Wgs84 را به لایه مقصد اختصاص دهید.
- بارگیری و تبدیل فرمت فایل از SHP به KML.
حال، بیایید ببینیم که چگونه این مراحل را در سی شارپ انجام دهیم تا یک فایل shapefile را به فرمت KML تبدیل کنیم.
صادرات ShapeFile به KML در سی شارپ
لطفاً مراحل زیر را برای صادر کردن داده ها از یک shapefile به KML دنبال کنید:
- نمونه ای از کلاس ConversionOptions را راه اندازی کنید.
- DestinationSpatialReferenceSystem را به عنوان Wgs84 تنظیم کنید.
- در نهایت، متد ()VectorLayer.Convert را برای تبدیل شکل فایل منبع به KML فراخوانی کنید.
نمونه کد زیر نحوه تبدیل یک شکل فایل به KML با استفاده از سی شارپ را نشان می دهد.
// این مثال کد نحوه تبدیل یک شکل فایل به KML در سی شارپ را نشان می دهد.
// دایرکتوری کار
string dataDir = @"C:\Files\GIS\";
// در صورت لزوم تنظیمات تبدیل را مشخص کنید. اختیاری است.
ConversionOptions options = null;
// اگر لایه مقصد از مرجع فضایی Wgs84 پشتیبانی نکند، تبدیل ممکن است خطا ایجاد کند. پس باید بررسی شود
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
// Wgs84 را به لایه مقصد اختصاص دهید
options = new ConversionOptions()
{
DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
};
}
// یک Shapefile را به KML تبدیل کنید.
VectorLayer.Convert(dataDir + "Shapefile.shp", Drivers.Shapefile, dataDir + "destination.kml", Drivers.Kml, options);
مجوز رایگان دریافت کنید
میتوانید [یک مجوز موقت رایگان] دریافت کنید18 تا کتابخانه را بدون محدودیت ارزیابی امتحان کنید.
نتیجه
در این مقاله یاد گرفتیم که چگونه یک shapefile را در سی شارپ به KML تبدیل کنیم. ما همچنین نحوه تعریف گزینه های تبدیل را به صورت برنامه ای دیدیم. علاوه بر این، میتوانید نحوه کار با چندین فرمت فایل GIS دیگر را بررسی کنید و با استفاده از مستندات درباره Aspose.GIS برای API .NET اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه ابهام، لطفاً با ما در [تالار گفتمان20 تماس بگیرید.