在某些情況下,您可能需要將 KML 文件轉換為 GeoJSON 格式,反之亦然。對於此類情況,本文將教您如何使用 C# 將 KML 文件轉換為 GeoJSON 格式以及將 GeoJSON 文件轉換為 KML 格式。
C# API 將 KML 轉換為 GeoJSON,反之亦然
Aspose.GIS for .NET API 允許您渲染地圖並創建、讀取和轉換地理數據,而無需額外的軟件。此外,API 允許您將 KML 文件轉換為 GeoJSON 格式,反之亦然。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。
PM> Install-Package Aspose.GIS
在 C# 中將 KML 轉換為 GeoJSON
以下是將 KML 文件轉換為 GeoJSON 格式的步驟。
- 創建 ConversionOptions 類的實例。
- 使用 DestinationSpatialReferenceSystem 屬性將 SpatialReferenceSystem.Wgs84 分配給 ConversionOptions 對象。
- 使用 VectorLayer.Convert(string sourcePath, FileDriver sourceDriver, string destinationPath, FileDriver destinationDriver, ConversionOptions options) 方法將 KML 文件轉換為 GeoJSON 格式。
以下示例代碼展示瞭如何使用 C# 將 KML 文件轉換為 GeoJSON 格式。
string dataDir = RunExamples.GetDataDir();
string sourceFile = dataDir + "Kml_File.kml";
string outputFile = dataDir + "output.geojson";
// 如有必要,指定轉換設置。它是可選的。
ConversionOptions options = null;
// 此選項將 Wgs84 分配給目標層。
// 如果目標圖層不支持 Wgs84 空間參考,轉換可能會引發錯誤。所以需要檢查。
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
options = new ConversionOptions()
{
DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
};
}
// 將文件格式從 KML 轉換為 GeoJSON
VectorLayer.Convert(sourceFile, Drivers.Kml, outputFile, Drivers.GeoJson, options);
在 C# 中將 GeoJSON 轉換為 KML
以下是將 GeoJSON 文件轉換為 KML 格式的步驟。
- 創建 ConversionOptions 類的實例。
- 使用 DestinationSpatialReferenceSystem 屬性將 SpatialReferenceSystem.Wgs84 分配給 ConversionOptions 對象。
- 使用 VectorLayer.Convert(string sourcePath, FileDriver sourceDriver, string destinationPath, FileDriver destinationDriver, ConversionOptions options) 方法將 GeoJSON 文件轉換為 KML 格式。
以下示例代碼展示瞭如何使用 C# 將 GeoJSON 文件轉換為 KML 格式。
string dataDir = RunExamples.GetDataDir();
string sourceFile = dataDir + "intersection.geojson";
string outputFile = dataDir + "output.kml";
// 如有必要,指定轉換設置。它是可選的。
ConversionOptions options = null;
// 此選項將 Wgs84 分配給目標層。
// 如果目標圖層不支持 Wgs84 空間參考,轉換可能會引發錯誤。所以需要檢查。
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
options = new ConversionOptions()
{
DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
};
}
// 將文件格式從 GeoJSON 轉換為 KML。
VectorLayer.Convert(sourceFile, Drivers.GeoJson, outputFile, Drivers.Kml, options);
獲得免費許可證
為了在沒有評估限制的情況下試用 API,您可以獲得 免費的臨時許可證。
結論
在本文中,您學習瞭如何使用 C# 將 KML 文件轉換為 GeoJSON 格式,反之亦然。共享的代碼片段演示瞭如何僅用幾行代碼就可以實現這些轉換。 Aspose.GIS for .NET 是一個強大且功能豐富的 API,可幫助您處理地理空間數據。您可以通過訪問 官方文檔 來詳細探索 API。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。