在 C# 中將 Shapefile 轉換為 SVG

Shapefile 格式是 ESRI 最常用的地理空間矢量數據格式之一,用於顯示地理信息。在某些情況下,我們可能需要將地理數據從 ESRI Shapefile (SHP) 格式導出為 SVG 格式。 SVG 是一種基於 XML 的文本格式,用於描述圖像的外觀。在本文中,我們將學習如何在 C# 中將 shapefile 轉換為 SVG。

本文應涵蓋以下主題:

  1. C# Shapefile 到 SVG 轉換器
  2. 將 Shapefile 轉換為 SVG 的步驟
  3. 將 ShapeFile 渲染為 SVG

C# Shapefile 到 SVG 轉換器 API - 免費下載

要將 shapefile 轉換為 SVG,我們將使用 Aspose.GIS for .NET API。它允許將 shapefile 導出為 SVG,而無需 ArcGISArcMapQGISGoogle Earth 等軟件。 API 還允許渲染地圖,創建、讀取和轉換支持的文件格式 中可用的地理數據。

API 的 Map 類是層的集合,可以通過 Renderer 在彼此之上渲染。 SpatialReferenceSystem 類提供了用於地圖的不同空間參考系統的列表。我們可以使用 SimpleLine 類定義一個簡單的矢量線符號。我們有 VectorLayer 類表示 API 中的矢量圖層。我們可以使用此類的 Open(string, FileDriver) 方法將 shapefile 加載到矢量圖層中。它打開層進行閱讀。

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

PM> Install-Package Aspose.GIS

如何在 C# 中將 Shapefile 轉換為 SVG

我們可以按照以下步驟使用 Aspose.GIS for .NET 輕鬆地將 shapefile 轉換為 SVG:

  1. 初始化地圖。
  2. 將 Wgs84 空間參考分配給地圖。
  3. 打開一個 shapefile 作為矢量圖層。
  4. 將 shapefile 圖層添加到地圖。
  5. 以 SVG 格式渲染地圖。

現在,讓我們看看如何將這些步驟轉換為 C# 代碼並將 shapefile 文件轉換為 SVG 格式。

在 C# 中將 ShapeFile 渲染為 SVG

請按照下面給出的步驟將 shapefile 渲染為 SVG:

  1. 首先,創建 Map 類的實例。
  2. 接下來,將 SpatialReferenceSystem 設置為 Wgs84。
  3. 然後,使用 SimpleLine 類定義一個簡單的線符號器。
  4. 同時,使用 VectorLayer.Open() 方法加載一個 shapefile。
  5. 之後,使用 Map.Add() 方法將 shapefile 圖層添加到地圖中。
  6. 最後,調用 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 的更多信息。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。

也可以看看