Shapefile 格式是 ESRI 最常用的地理空間矢量數據格式之一,用於顯示地理信息。在某些情況下,我們可能需要將地理數據從 ESRI Shapefile (SHP) 格式導出為 SVG 格式。 SVG 是一種基於 XML 的文本格式,用於描述圖像的外觀。在本文中,我們將學習如何在 C# 中將 shapefile 轉換為 SVG。
本文應涵蓋以下主題:
C# Shapefile 到 SVG 轉換器 API - 免費下載
要將 shapefile 轉換為 SVG,我們將使用 Aspose.GIS for .NET API。它允許將 shapefile 導出為 SVG,而無需 ArcGIS、ArcMap、QGIS 或 Google Earth 等軟件。 API 還允許渲染地圖,創建、讀取和轉換支持的文件格式 中可用的地理數據。
API 的 Map 類是層的集合,可以通過 Renderer 在彼此之上渲染。 SpatialReferenceSystem 類提供了用於地圖的不同空間參考系統的列表。我們可以使用 SimpleLine 類定義一個簡單的矢量線符號。我們有 VectorLayer 類表示 API 中的矢量圖層。我們可以使用此類的 Open(string, FileDriver) 方法將 shapefile 加載到矢量圖層中。它打開層進行閱讀。
PM> Install-Package Aspose.GIS
如何在 C# 中將 Shapefile 轉換為 SVG
我們可以按照以下步驟使用 Aspose.GIS for .NET 輕鬆地將 shapefile 轉換為 SVG:
- 初始化地圖。
- 將 Wgs84 空間參考分配給地圖。
- 打開一個 shapefile 作為矢量圖層。
- 將 shapefile 圖層添加到地圖。
- 以 SVG 格式渲染地圖。
現在,讓我們看看如何將這些步驟轉換為 C# 代碼並將 shapefile 文件轉換為 SVG 格式。
在 C# 中將 ShapeFile 渲染為 SVG
請按照下面給出的步驟將 shapefile 渲染為 SVG:
- 首先,創建 Map 類的實例。
- 接下來,將 SpatialReferenceSystem 設置為 Wgs84。
- 然後,使用 SimpleLine 類定義一個簡單的線符號器。
- 同時,使用 VectorLayer.Open() 方法加載一個 shapefile。
- 之後,使用 Map.Add() 方法將 shapefile 圖層添加到地圖中。
- 最後,調用 Map.Render() 方法保存為 SVG。它以輸出 SVG 文件路徑和 Renderers.Svg 作為參數。
以下代碼示例展示瞭如何使用 C# 將 shapefile 轉換為 SVG。
// 此代碼示例演示如何將 shapefile 轉換為 SVG。
// 文件目錄
string dataDir = "C:\\Files\\GIS\\";
// 初始化地圖
var map = new Map(800, 400);
// 使用指定的 SRS
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;
// 使用指定樣式畫線
// 我們也有點、線和麵的樣式。
var symbolizer = new SimpleLine()
{
Width = Measurement.Pixels(2)
};
// 打開一個 shapefile 作為圖層
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);
// 將 shapefile 圖層添加到地圖
map.Add(shapefileLayer, symbolizer);
// 將地圖渲染為 Svg 格式
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);
獲得免費許可證
您可以 獲得免費的臨時許可證 來試用該庫,而沒有評估限制。
結論
在本文中,我們學習瞭如何在 C# 中將 shapefile 轉換為 SVG。我們還了解瞭如何以編程方式定義地圖和加載 shapefile。此外,您可以探索如何使用其他幾種 GIS 文件格式,並使用 文檔 了解有關 API 的更多信息。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。