[T-SQL] 如何得到台灣村里經緯度及畫出村里界線

因為負責公司的open data專案而開始常常想 open data的應用 也想用利用open data做一些自己的作品

一直想用地理資訊呈現一些資料視覺化的效果

最近發現原來政府有公開村里的地理資訊資料 實在是太棒了 覺得自己繳的稅有了回報

政府公開的是shp檔 於是又摸索了一下如何把shp轉成SQL Server的地理物件

發現台灣很少有人寫到這一塊 於是我又雞婆的先來跟鄉民報告一下我是怎麼做的吧

在這裡 http://data.gov.tw/node/7438下載地理資訊 或是搜尋 村里界圖 村里經緯度 就可以找到

下載完之後解壓縮 先放著

趕緊再去下載一個很重要的轉檔程式 http://www.sharpgis.net/page/sql-server-2008-spatial-tools

下載完以後一樣要解壓縮 會看到資料夾裡面有Shape2sql執行檔 按二下之後會跳出這個畫面請你設定要連線的資料庫 如果暫時不連就先按Cancel




然後會跳出以下這個畫面 這才是正經的 在Shapefile的地方選擇你剛剛下載好並解壓縮的村里地理資訊資料裡的 .shp 檔案

接著按下Configure輸入你要上傳的資料庫連線資訊 如上圖 然後按下 upload to Database


幸運的話 你就會看到上傳的進度 等到上傳完成會跳出通知的視窗

如果不幸運的話 你可能會像我一樣遇到 系統缺少sqlspatial.dll的錯誤訊息 這時候就要去下載額外的功能套件 叫做  "Microsoft SQL Server System CLR Typeshttp://www.microsoft.com/zh-TW/download/details.aspx?id=29065

裝好 Microsoft SQL Server System CLR Types 之後 再重新打開 Shape2sql重新上傳一次 應該就成功囉 你可以到你的資料庫裡面看有沒有多出一個資料表

上傳成功的資料表畫面如下 到空間結果的地方可以看到村里的界線圖 最重要的是資料表裡面已經有了Geometry物件 可以隨心所欲的做其它的運算 例如我運用了STCentriod這個method算出每一個村里的中心點




留言

這個網誌中的熱門文章

R中Try and Catch的寫法

如何將DSM(NAS)變成Mail Server

使用VBA記錄股市每分鐘的交易記錄