Có thể có những trường hợp bạn cần chuyển đổi tệp KML sang định dạng GeoJSON hoặc ngược lại. Đối với những trường hợp như vậy, bài viết này sẽ hướng dẫn bạn cách chuyển đổi tệp KML sang định dạng GeoJSON và tệp GeoJSON sang định dạng KML bằng C#.
- C# API để chuyển đổi KML sang GeoJSON và Vice Versa
- Chuyển đổi tệp KML sang định dạng GeoJSON bằng C#
- Chuyển đổi tệp GeoJSON sang định dạng KML bằng C#
C# API để chuyển đổi KML sang GeoJSON và Vice Versa
API Aspose.GIS for .NET cho phép bạn hiển thị bản đồ và tạo, đọc và chuyển đổi dữ liệu địa lý mà không cần phần mềm bổ sung. Hơn nữa, API cho phép bạn chuyển đổi tệp KML sang định dạng GeoJSON và ngược lại. Bạn có thể cài đặt API thông qua NuGet hoặc tải xuống trực tiếp từ phần Tải xuống.
PM> Install-Package Aspose.GIS
Chuyển đổi KML sang GeoJSON trong C#
Sau đây là các bước để chuyển đổi tệp KML sang định dạng GeoJSON.
- Tạo một phiên bản của lớp ConversionOptions.
- Gán SpatialReferenceSystem.Wgs84 cho đối tượng ConversionOptions bằng thuộc tính DestinationSpatialReferenceSystem.
- Chuyển đổi tệp KML sang định dạng GeoJSON bằng cách sử dụng phương pháp VectorLayer.Convert (string sourcePath, FileDriver sourceDriver, string destinationPath, FileDriver destinationDriver, các tùy chọn ConversionOptions).
Mã mẫu sau đây cho biết cách chuyển đổi tệp KML sang định dạng GeoJSON bằng C#.
string dataDir = RunExamples.GetDataDir();
string sourceFile = dataDir + "Kml_File.kml";
string outputFile = dataDir + "output.geojson";
// 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ừ KML sang GeoJSON
VectorLayer.Convert(sourceFile, Drivers.Kml, outputFile, Drivers.GeoJson, options);
Chuyển GeoJSON sang KML trong C#
Sau đây là các bước để chuyển đổi tệp GeoJSON sang định dạng KML.
- Tạo một phiên bản của lớp ConversionOptions.
- Gán SpatialReferenceSystem.Wgs84 cho đối tượng ConversionOptions bằng cách sử dụng thuộc tính DestinationSpatialReferenceSystem.
- Chuyển đổi tệp GeoJSON sang định dạng KML bằng phương pháp VectorLayer.Convert (string sourcePath, FileDriver sourceDriver, string destinationPath, FileDriver destinationDriver, các tùy chọn ConversionOptions).
Mã mẫu sau đây cho biết cách chuyển đổi tệp GeoJSON sang định dạng KML bằng C#.
string dataDir = RunExamples.GetDataDir();
string sourceFile = dataDir + "intersection.geojson";
string outputFile = dataDir + "output.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ừ GeoJSON sang KML.
VectorLayer.Convert(sourceFile, Drivers.GeoJson, outputFile, Drivers.Kml, options);
Nhận giấy phép miễn phí
Để dùng thử API mà không có giới hạn đánh giá, bạn có thể nhận giấy phép tạm thời miễn phí.
Sự kết luận
Trong bài viết này, bạn đã học cách chuyển đổi tệp KML sang định dạng GeoJSON và ngược lại bằng C#. Các đoạn mã được chia sẻ chứng minh cách đạt được những chuyển đổi này chỉ với một vài dòng mã. Aspose.GIS for .NET là một API mạnh mẽ và giàu tính năng hỗ trợ bạn làm việc với dữ liệu không gian địa lý. Bạn có thể khám phá API chi tiết bằng cách truy cập tài liệu chính thức. Trong trường hợp có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi tại diễn đàn hỗ trợ miễn phí của chúng tôi.