OpenStreetMap (OSM) 是一個開源項目。它旨在創建一個免費的、可編輯的全球地理數據庫。 OpenStreetMap 文件 (.osm) 是存儲為 XML 的 OpenStreetMap 數據庫的摘錄。在某些情況下,我們可能需要從 OSM 導出地圖數據以顯示在 Google 地球上。 Google 地球使用 KML 文件來顯示地理數據。在本文中,我們將學習如何在 C# 中將 OSM 轉換為 KML。
本文應涵蓋以下主題:
C# OSM 到 KML 轉換器 API - 免費下載
為了將 OpenStreetMap (OSM) 文件轉換為 KML,我們將使用 Aspose.GIS for .NET API。 API 允許將 OSM 導出為 KML,而無需 ArcGIS、ArcMap、QGIS 或 Google 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:
- 將 Wgs84 空間參考分配給目標圖層。
- 將文件格式從 OSM 轉換為 KML。
以下部分介紹如何將這些步驟轉換為 C# 並將 OSM 格式轉換為 KML 格式。
在 C# 中將 OSM 轉換為 KML
我們可以按照以下步驟將數據從 OSM 導出到 KML:
- 首先,創建一個 ConversionOptions 類的實例。
- 之後,將 DestinationSpatialReferenceSystem 設置為 Wgs84。
- 最後,調用 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 的更多信息。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。