在 C# 中將 OSM 轉換為 KML

OpenStreetMap (OSM) 是一個開源項目。它旨在創建一個免費的、可編輯的全球地理數據庫。 OpenStreetMap 文件 (.osm) 是存儲為 XML 的 OpenStreetMap 數據庫的摘錄。在某些情況下,我們可能需要從 OSM 導出地圖數據以顯示在 Google 地球上。 Google 地球使用 KML 文件來顯示地理數據。在本文中,我們將學習如何在 C# 中將 OSM 轉換為 KML。

本文應涵蓋以下主題:

  1. C# OSM 到 KML 轉換器
  2. 將 OSM 轉換為 KML 的步驟
  3. 將 OSM 轉換為 KML

C# OSM 到 KML 轉換器 API - 免費下載

為了將 OpenStreetMap (OSM) 文件轉換為 KML,我們將使用 Aspose.GIS for .NET API。 API 允許將 OSM 導出為 KML,而無需 ArcGISArcMapQGISGoogle Earth 等軟件。它還允許呈現地圖,創建、讀取和轉換 支持的文件格式 中可用的地理數據。

API 提供了表示矢量圖層的 VectorLayer 類。它提供 Convert(string, FileDriver, string, FileDriver, ConversionOptions) 將層轉換為不同的格式。 SpatialReferenceSystem 類提供了用於地圖的不同空間參考系統的列表。

下載 API 的 DLL 或使用 NuGet 安裝它。

PM> Install-Package Aspose.GIS

如何在 C# 中將 OSM 轉換為 KML

我們可以按照以下步驟使用 Aspose.GIS for .NET 輕鬆地將 OpenStreetMap (OSM) 文件轉換為 KML:

  1. 將 Wgs84 空間參考分配給目標圖層。
  2. 將文件格式從 OSM 轉換為 KML。

以下部分介紹如何將這些步驟轉換為 C# 並將 OSM 格式轉換為 KML 格式。

在 C# 中將 OSM 轉換為 KML

我們可以按照以下步驟將數據從 OSM 導出到 KML:

  1. 首先,創建一個 ConversionOptions 類的實例。
  2. 之後,將 DestinationSpatialReferenceSystem 設置為 Wgs84。
  3. 最後,調用 VectorLayer.Convert() 方法將源 OSM 轉換為 KML。

以下代碼示例展示瞭如何使用 C# 將 OSM 轉換為 KML。

// 此代碼示例演示如何將 OSM 轉換為 KML。
// 如有必要,指定轉換設置。它是可選的。
ConversionOptions options = null;

// 此選項將 Wgs84 分配給目標層。
// 如果目標圖層不支持 Wgs84 空間參考,轉換可能會引發錯誤。所以需要檢查。
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// 將文件格式從 OSM 轉換為 KML。
VectorLayer.Convert("C:\\Files\\sample.osm", Drivers.OsmXml, "C:\\Files\\destination.kml", Drivers.Kml, options);

獲得免費許可證

您可以 獲得免費的臨時許可證 來試用該庫,而沒有評估限制。

結論

在本文中,我們學習瞭如何在 C# 中將 OSM 轉換為 KML。此外,您可以探索如何使用其他幾種 GIS 文件格式,並使用 文檔 了解有關 API 的更多信息。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。

也可以看看