1. 程式人生 > >PostgreSQL9.6+PostGIS2.3學習筆記(一)匯入shp檔案

PostgreSQL9.6+PostGIS2.3學習筆記(一)匯入shp檔案

一. 建庫以及準備工作:(使用pgAdmin4直接建庫)

  1. 開啟pgAdmin4,如下圖所示create–>Database
    建庫

  2. 輸入database的名字,如下圖,輸入完成即可選擇save進行儲存。這樣基本上就可以了,其他選項可以根據自身需要進行選擇。
    儲存介面

  3. 給新建的庫新增擴充套件,需要登入psql進行操作:
    psql
    圖中1:選擇自己對應的server,Database等,如果不需要更改直接回車進入下一項,如果需要更改就需要在其後面填寫修改的內容。如圖中所示,我們要進入到需要擴充套件的Database中,所以修改了Database一項。
    圖中2:這四條語句就是進行擴充套件的語句,當然如果只是將shp檔案通過PostGIS匯入到庫中,只要第一句就可以完成了shp匯入到的資料庫非空間資料庫。建立空間資料庫,重新導
    入到新建的庫中。

  4. 開啟PostGIS設定連結
    設定連結
    4.1點選 view connection details…進行連結設定。
    4.2輸入對應的使用者名稱,密碼,PostgreSQL伺服器地址(如果是本機就直接localhost),埠(預設5432),需要匯入shp檔案的Database。這些輸入完後,點選OK。
    4.3在Log Window中出現Connectionsucceeded說明連結成功。就可以進行匯入檔案操作了。

二、 匯入shp檔案

  1. 進行引數設定:
    引數設定
    1.1.點選Options進入引數設定介面。
    1.2.首先設定匯入的字元編碼,這個基本上都是GBK,當然這個也要看自己需要,設定成UTF-8也行。
    1.3.這一項可勾選也可不勾選,看實際情況。如果非Multi型別,才勾選最後一項。一般非多義型別,所以一般要勾選。
  2. 新增檔案進行匯入:
    匯入
    2.1. 點選Add file 進入檔案選擇頁面,選擇需要匯入的.shp檔案,可以選擇多個檔案進行批量匯入。
    2.2. 檔案選擇完,修改SRID(座標系)4326是經緯度的WGS-84座標系,也可以選擇墨卡託座標系(3857),這個根據實際情況。
    2.3. 點選Import開始匯入,這時會出現進度條顯示匯入進度。
    2.4. 當Log Window 中出現Shapefile import completed.說明匯入成功。

三、 匯入後檢視資料

檢視資料
1. 開啟pgAdmin4展開對應的Database
2. 展開Schemas找到在匯入時選擇的Schema,上圖中我們選擇的Schema是public,對應生成的tablename是veg_py。
3. 在Schemas下選擇public 然後展開找到Tables展開並找到我們需要的table,右擊選擇View Data 即可展示資料。

四、 可能出現的錯誤:

  1. Failedinpgui_exec(): 錯誤: 函式addgeometrycolumn(unknown, unknown, unknown,unknown, unknown, integer) 不存在。
    解決方案:shp匯入到的資料庫非空間資料庫。建立空間資料庫,重新匯入新建的空間庫中。
    如,在sql或psql console中輸入’create extension postgis;’
  2. Unableto convert data value to UTF-8 (iconv reports “Illegal bytesequence”). Current encoding is “UTF-8”. Try “LATIN1”(Western European), or one of the values
    解決方案:開啟Options 將編碼改為 GBK (中文),其他語言請設定對應的編碼。如果改成GBK還不行,試試gb18030編碼
  3. dbffile (.dbf) can not be opened.
    解決方案:shp檔案路徑不能太深,且路徑名稱不能有中文.