2012年2月22日 星期三

pgRouting圖資轉換

pgRouting簡單的講是一個幫你算點間導航的open source..架構於PostgreSQL+PostGIS上..

不過要算導航~ pgRouting有演算法~ 但還是要有圖資..所以他本身也有提供一些轉圖資的cmd..把圖資轉成db的資料..

圖資變成db資料~ 主要就是以原圖資的屬性欄位為table內的欄位名(所以圖資欄位改成英文以免出事)..另外加一個key(default為gid), 以及一個地理欄位(default為the_geom)

但主要因為台灣有中文問題~ 所以還是先人眼check一下資料來源~ 欄位中文應改為英文..以及內容編碼(big5/UTF-8)的差異..還有坐標系

1. 先取得.shp File
PS: 欄位名為英文, 內容編碼為Big5, 並確認坐標系為WGS84(經緯度)
SRID
TWD97=3826
TWD67=3821
WGS86=4326

2. 至pg安裝路徑下之 bin\(edges為產出的table name~ 可以自己改)
shp2pgsql -s 4326 -W big5 -i -I "D:\project\圖資\AllRoad\tAllRoad.shp" edges > "D:\project\圖資\AllRoad\edges.sql"

3. Import SQL File to Postgres SQL, 至postgres bin\
(Drop edges if it exist)
psql --host [host ip] --username [user] --dbname [database name] -f D:\project\圖資\AllRoad\edges.sql

另外是有碰到可能是資料內容有亂碼或是難字之類的~ 會造成產生的sql有問題~
後來是用另一個解法解~ 就是去裝一個open source的gis工具: QGIS..朋友介紹使用的..雖然會當機~ 不過聽說情況有比之前的版本好了Orz..沒辦法~ 沒人沒錢沒知識又要上~

Quantum GIS裡面有一個工具..
先開shp檔起來..看一看有沒有什麼不對的地方..
附加元件-->Shape檔匯出至PostGIS
設定連線..設定幾合欄位名稱..接著放著給他跑到天荒地老..

似乎他對於編碼的解讀比較好的樣子Orz..反正就是這樣子可以把中文字正確的寫進去就好~囧rz

沒有留言: