Bu makale, çevreyi özelleştirme adımlarını paylaşarak ve ardından bu uygulamayı yazmak için gerekli prosedürü tanımlayarak C# kullanarak KML‘i SHP‘ye nasıl dönüştüreceğiniz hakkında bilgi sağlar. Dönüştürme için gereken tüm gerekli sınıfları, ad alanlarını ve yöntemleri vurgulayan adım adım bir dizi komut alacaksınız. Sonunda, KML’yi C# kullanarak SHP’ye dönüştürmek için çalıştırılabilir bir örnek kod paylaşılır; bu kod, .NET veya Linux’u destekleyen MS Windows ve .NET Core’u destekleyen macOS’ta yürütülebilir.
C# Kullanarak KML’yi SHP’ye Dönüştürme Adımları
- NuGet paket yöneticisinden Aspose.GIS for .NET yüklemek için geliştirme ortamını oluşturun
- Süreci özelleştirmek için ConversionOptions türünde bir değişken bildirin
- Hedef katman türünün belirli uzaysal referans sistemini destekleyip desteklemediğini kontrol edin
- ConversionOptions sınıf nesnesinde istenen uzamsal başvuru sistemi özelliğini ayarlayın
- VectorLayer.Convert yöntemini kullanarak, seçilen seçeneklerle kaynak KML’yi SHP’ye dönüştürün
Bu net adımlar, örnek kodu çalıştırmak için yüklenecek kaynakları tanıtarak KML’yi Shapefile dönüştürücüsüne C# kullanarak yazmaya yardımcı olur. Bu işlem herhangi bir özelleştirme yapılmadan tamamlanabilir, ancak daha iyi anlaşılması için farklı parametreleri ayarlamak için kullanılabilecek ConversionOptions sınıfı tanıtıldı. Son adımda, istenen özelliklere sahip isteğe bağlı parametre ile birlikte dönüştürmeyi gerçekleştiren asıl yöntem tanıtılır.
C# kullanarak KML’yi SHP’ye Değiştirme Kodu
using Aspose.Gis; | |
using Aspose.Gis.SpatialReferencing; | |
namespace AsposeProjects | |
{ | |
class Program | |
{ | |
static void Main(string[] args) // Main function to Convert KML to SHP using C# | |
{ | |
// Load license | |
Aspose.Gis.License lic = new Aspose.Gis.License(); | |
lic.SetLicense(@"Aspose.Total.lic"); | |
// Create ConversionOptions if required | |
ConversionOptions options = new ConversionOptions(); | |
// This options assigns Wgs84 to the destination layer. | |
// Conversion may throw error If destination layer does not support the Wgs84 spatial reference. So need to check. | |
// | |
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs72)) | |
options.DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs72; | |
// Convert file format from KML to Shapefile. | |
VectorLayer.Convert("source.kml", Drivers.Kml, "destination.shp", Drivers.Shapefile, options); | |
System.Console.WriteLine("Done"); | |
} | |
} | |
} |
Kodun son satırını yalnızca ilk dört parametreyle kullanabilirsiniz, ancak hedef katmana belirli bir uzaysal referans sistemi atamak istiyorsanız, ancak o zaman ConversionOptions sınıf nesnesini kullanabilirsiniz. ConversionOptions sınıfı, gerektiğinde yapılandırılabilen AttributeConverter, DestinationDriverOptions, DestinationSpatialReferenceSystem ve SourceDriverOptions gibi diğer özellikleri de içerir. Bu örnek kod, olduğu gibi kullanılabilecek C#* kullanan eksiksiz bir *KML’den Shapefile’a dönüştürücüyü gösterir.
Burada C#* kullanarak *KML’den SHP’ye dönüştürücü yazmayı öğrendik, ancak Shapefile’ı Geojson’a dönüştürmek istiyorsanız, C#‘da SHP’yi Geojson’a dönüştürme makalesine başvurabilirsiniz.