Chuyển đổi Shapefile thành KML trong C#

Chúng tôi có thể cung cấp dữ liệu Địa lý ở nhiều định dạng được hỗ trợ bởi các hệ thống khác nhau. Trong một số trường hợp nhất định, chúng tôi có thể cần xuất dữ liệu địa lý từ định dạng ESRI Shapefile (SHP) sang định dạng Keyhole Markup Language (KML). Định dạng Shapefile là một trong những định dạng dữ liệu vectơ không gian địa lý phổ biến nhất được sử dụng để hiển thị thông tin địa lý. KML là một định dạng dựa trên XML, được sử dụng để chia sẻ dữ liệu địa lý với những người không sử dụng GIS. Định dạng KML được sử dụng để hiển thị dữ liệu địa lý trong Google Earth hoặc Google Maps. Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển đổi shapefile sang KML trong C#.

Bài viết này sẽ bao gồm các chủ đề sau:

  1. C# Shapefile to KML Converter
  2. Các bước chuyển đổi tệp hình dạng thành KML
  3. Xuất ShapeFile sang KML

API chuyển đổi C# Shapefile sang KML - Tải xuống miễn phí

Để chuyển đổi tệp hình dạng thành KML, chúng tôi sẽ sử dụng API Aspose.GIS for .NET. Nó cho phép xuất tệp hình dạng sang KML mà không cần phần mềm như ArcGIS, ArcMap, QGIS hoặc Google Earth. API cũng cho phép hiển thị bản đồ, tạo, đọc và chuyển đổi dữ liệu địa lý có sẵn ở các định dạng tệp được hỗ trợ.

Lớp ConversionOptions của API cung cấp các tùy chọn để chuyển đổi dữ liệu giữa các định dạng. Lớp SpatialReferenceSystem cung cấp danh sách các hệ quy chiếu không gian khác nhau để sử dụng trong việc lập bản đồ tọa độ đến các địa điểm trên Trái đất. Chúng ta có lớp VectorLayer đại diện cho một lớp vectơ trong API. Phương thức Convert (string, FileDriver, string, FileDriver, ConversionOptions) của lớp này chuyển đổi một lớp sang một định dạng khác.

Vui lòng tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

PM> Install-Package Aspose.GIS

Cách chuyển đổi Shapefile sang KML trong C#

Chúng tôi có thể dễ dàng chuyển đổi một tệp hình dạng thành KML bằng Aspose.GIS cho .NET bằng cách làm theo các bước dưới đây:

  • Gán tham chiếu không gian Wgs84 cho lớp đích.
  • Tải và chuyển đổi định dạng tệp từ SHP sang KML.

Bây giờ, hãy xem cách thực hiện các bước này trong C# để chuyển đổi tệp shapefile sang định dạng KML.

Xuất ShapeFile sang KML trong C#

Vui lòng làm theo các bước được cung cấp bên dưới để xuất dữ liệu từ tệp hình dạng sang KML:

  1. Khởi tạo một phiên bản của lớp ConversionOptions.
  2. Đặt DestinationSpatialReferenceSystem là Wgs84.
  3. Cuối cùng, gọi phương thức VectorLayer.Convert() để chuyển đổi shapefile nguồn sang KML.

Mẫu mã sau đây cho biết cách chuyển đổi tệp hình dạng sang KML bằng C#.

// Đoạn mã này minh họa cách chuyển đổi một tệp hình dạng thành KML trong C#.
// Thư mục làm việc
string dataDir = @"C:\Files\GIS\";

// Chỉ định cài đặt chuyển đổi nếu cần. Nó là tùy chọn.
ConversionOptions options = null;

// Chuyển đổi có thể gây ra lỗi Nếu lớp đích không hỗ trợ tham chiếu không gian Wgs84. Vì vậy cần phải kiểm tra.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    // Gán Wgs84 cho lớp đích
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Chuyển đổi Shapefile thành KML.
VectorLayer.Convert(dataDir + "Shapefile.shp", Drivers.Shapefile, dataDir + "destination.kml", Drivers.Kml, options);

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử thư viện mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, chúng ta đã học cách chuyển đổi tệp hình dạng sang KML trong C#. Chúng tôi cũng đã biết cách xác định các tùy chọn chuyển đổi theo chương trình. Bên cạnh đó, bạn có thể khám phá cách làm việc với một số định dạng tệp GIS khác và tìm hiểu thêm về API Aspose.GIS cho .NET bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn của chúng tôi.

Xem thêm