> ## Content Index
> Fetch the complete content index at: https://blog.anthea.day/llms.txt
> Use this file to discover other available public pages before exploring further.

# 歡迎來到 GIS 的世界－Day 13：NetTopologySuite 使用前的準備
- URL: https://blog.anthea.day/series-2022-ithome-13/
- Published: 2022-09-26T16:11:02.000Z
- Updated: 2026-11-06T19:09:04.000Z
- Author: Anthea / 芫荽
- Tags: #Migrated-1792241843742, #Import 2026-10-17 12:57, Coding, 2022 iThome 鐵人賽：歡迎來到 GIS 的世界

### GDAL V.S. NetTopologySuite

前幾篇介紹了如何使用 GDAL 進行 Shapefile 檔案的讀取和建立之後，下一個要介紹的套件是 `NetTopologySuite`。

雖然我們前面順利的解決了 GDAL 對於中文亂碼的問題，但他在使用上還有一個限制：如果沒有註冊且沒有開啟 Shapefile，就無法針對 Geometry 型別進行相關的操作，例如：判斷交集、畫一個 Buffer 等。

然而，GIS 的處理是離不開這些功能的，所以最後我決定轉而只使用 `NetTopologySuite`。接下來就讓我們一起看看怎麼使用吧。

#### 我的 Nuget 找不到 `NetTopologySuite.IO.Esri`

如果你使用 `NetTopologySuite` 和 `Shapefile` 這兩個關鍵字去 google ，第一個應該會看到的是 `NetTopologySuite.IO.ShapeFile` 這個套件，但可以在 README 的地方看到團隊沒有要繼續更新了，建議轉而使用 `NetTopologySuite.IO.Esri`。但經過搜尋之後，發現他還沒有被發佈到 Nuget 上，所以必須手動安裝。

安裝的方法很簡單，在 GitHub 頁面選擇下載成 zip 檔，或是 clone 下來之後，按照個人習慣將他編譯成 dll 檔案，接著在你原本的專案內新增這些 dll 檔案的參考即可。

我的話習慣用指令的方式進行：

```
dotnet publish -c Release
```

下圖為編譯後的全部內容。選取起來的三個 dll 中，最主要是第三個 `NetTopologySuite.IO.Esri.Shapefile`，其他兩個也會使用到，可以從這裡加入參考，或是從 Nuget 中加入也行。

![](https://cdn-images-1.medium.com/max/800/0*VsDSWgpizpwKpw4w.png)

### 新增參考

如果你是使用 Visual Stadio 可以看看[官方文件](https://docs.microsoft.com/zh-tw/visualstudio/ide/how-to-add-or-remove-references-by-using-the-reference-manager?view=vs-2022&ref=blog.anthea.day)是如何操作的；如果你和我一樣是使用 Rider，那麼就對著你的 project 右鍵，點選 `Add`，就可以看到 `Add Reference` 的選項。點擊之後會打開一個視窗，在視窗最下面點選 `Add From …` 就能自行新增參考了。

![](https://cdn-images-1.medium.com/max/800/0*yW3qCuarodNEGY59.png)

![](https://cdn-images-1.medium.com/max/800/0*k-oxjpAtnI3CPQYj.png)

#### References

- [NetTopologySuite.IO.Esri 官方 GitHub](https://ithelp.ithome.com.tw/articles/10293032/draft?ref=blog.anthea.day)