Chuyển đổi OSM sang KML trong C#

OpenStreetMap (OSM) là một dự án mã nguồn mở. Nó nhằm mục đích tạo ra một cơ sở dữ liệu địa lý miễn phí, có thể chỉnh sửa trên toàn thế giới. Tệp OpenStreetMap (.osm) là một phần trích xuất của cơ sở dữ liệu OpenStreetMap được lưu trữ dưới dạng XML. Trong một số trường hợp nhất định, chúng tôi có thể cần xuất dữ liệu bản đồ từ OSM để hiển thị trên Google Earth. Google Earth sử dụng tệp KML để hiển thị dữ liệu địa lý. Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển đổi OSM sang KML trong C#.

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

  1. Công cụ chuyển đổi C# OSM sang KML
  2. Các bước chuyển đổi OSM sang KML
  3. Chuyển đổi OSM sang KML

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

Để chuyển đổi tệp OpenStreetMap (OSM) sang KML, chúng tôi sẽ sử dụng API Aspose.GIS for .NET. API cho phép xuất OSM sang KML mà không cần phần mềm như ArcGIS, ArcMap, QGIS hoặc Google Earth. Nó 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ợ.

API cung cấp lớp VectorLayer đại diện cho một lớp vectơ. Nó cung cấp Convert (string, FileDriver, string, FileDriver, ConversionOptions) để chuyển đổi một lớp sang một định dạng khác. Lớp SpatialReferenceSystem cung cấp danh sách các hệ quy chiếu không gian khác nhau để sử dụng cho bản đồ.

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 OSM sang KML trong C#

Chúng tôi có thể dễ dàng chuyển đổi tệp OpenStreetMap (OSM) sang KML bằng Aspose.GIS cho .NET bằng cách làm theo các bước dưới đây:

  1. Gán tham chiếu không gian Wgs84 cho lớp đích.
  2. Chuyển đổi định dạng tệp từ OSM sang KML.

Phần sau đây mô tả cách chuyển đổi các bước này thành C# và chuyển đổi OSM sang định dạng KML.

Chuyển đổi OSM sang KML trong C#

Chúng tôi có thể xuất dữ liệu từ OSM sang KML bằng cách thực hiện theo các bước dưới đây:

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

Mẫu mã sau đây cho biết cách chuyển đổi OSM sang KML bằng C#.

// Ví dụ mã này trình bày cách chuyển đổi OSM sang KML.
// Chỉ định cài đặt chuyển đổi nếu cần. Nó là tùy chọn.
ConversionOptions options = null;

// Tùy chọn này gán Wgs84 cho lớp đích.
// 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))
{
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Chuyển đổi định dạng tệp từ OSM sang KML.
VectorLayer.Convert("C:\\Files\\sample.osm", Drivers.OsmXml, "C:\\Files\\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 đã tìm hiểu cách chuyển đổi OSM sang KML trong C#. 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 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 hỗ trợ miễn phí của chúng tôi.

Xem thêm