天天看點

如何使用shp2pgsql 将shp格式的GIS資料導入到PostgreSQL

postgis 2.2.0dev手冊文檔中涉及到一些基本的資料,這些資料需要導入到資料庫中。使用qgis頁面方式導入有一些問題。下面是導入過程

如果用qgis方法,導入過程中,會有一些sql錯誤,這些錯誤會引起導入中斷,實際上shp檔案會轉換成sql語句 并且在sql檔案末尾才加上commit,如果中途中斷就等于事務中斷,沒有送出。

如何使用shp2pgsql 将shp格式的GIS資料導入到PostgreSQL

為了讓正常進行,我們需要使用shp2psql這個指令先生成sql語句,然後再對sql進行改造,中間加上若幹commit語句,然後使用psql指令執行

step1:伺服器上面必須裝上postgis,這樣才會有shp2psql指令,安裝略

step2:把f:personal studypostgispostgis-datadata目錄下的資料上傳到伺服器上面,注意不止是要shp檔案,其他檔案要需要上傳

這些檔案是從這裡下載下傳的:

<a href="http://giswiki.hsr.ch/postgis-beispiele">http://giswiki.hsr.ch/postgis-beispiele</a>

如何使用shp2pgsql 将shp格式的GIS資料導入到PostgreSQL

shp2pgsql -s 4326 bc_roads.shp bc_roads&gt;bc_roads.sql

這裡面有16w行資料

但是有些資料有些問題

在其中插入一些commit

然後執行sql語句

psql -d postgres -upg952 -f bc_roads.sql &gt;/home/pg9.5.2/bc_roads.log

導入資料即可

資料量比較大,産生的日志最好重定向一下