PostgreSQL與PostGIS安裝使用時需要注意的坑


最近些許繁忙,沒有時間系統整理PostgreSQL和PostGIS的安裝和使用方法。所以就簡單記錄一下遇到的坑。

1、找不到 libintl-9.dll

我安裝的PostgreSQL版本是11.7,PostGIS是3.0.1 (利用Stack Builder安裝的PostGIS 3.0 bundle)。

Snipaste_2020-04-19_00-08-00

安裝完成,打算導入shp數據的時候發現PostGIS Shapefile Import/Export Manager無法打開,並提示“找不到libintl-9.dll”,如下:

Snipaste_2020-04-22_20-59-16

這可咋辦呢?只需要找到PostgreSQL安裝目錄的bin目錄下的libintl-9.dll,將它復制到postgisgui目錄下即可。

2222

2、導入shp數據時提示“無法打開shp/dbf(shp/dbf file can not be opened)”

通過PostGIS Shapefile Import/Export Manager導入數據時慘遭拒絕,提示“shp/dbf file can not be opened”,如圖。那可咋辦呢?首先檢查你的數據的路徑中是否帶有中文,postgis導入shp數據不支持中文路徑

Snipaste_2020-04-22_21-16-49

3、導入shp數據時提示“Unable to convert data value to UTF-8”

通過PostGIS Shapefile Import/Export Manager導入數據時,提示“Unable to convert data value to UTF-8”。說明你數據中的編碼格式與shp導入工具的設置的編碼不一致。這個錯誤,一般主要是在shp數據有中文屬性時出現(dbf中含有中文)

Snipaste_2020-04-26_14-29-44

如果確實是由於你的數據中存在中文編碼(有中文屬性)導致的問題,那咋辦呢?只需要在這里的Options中將編碼改成GBK即可。

Snipaste_2020-04-26_14-30-07

4、導入shp數據時二話不說,直接失敗

通過PostGIS Shapefile Import/Export Manager導入數據時,沒有任何其他提示,只顯示”Shapefile import failed“,如圖。

ppppppppppSnipaste_2020-04-30_22-15-51

如果你連接的這個數據庫是你自己創建的(不是名叫"postgis_30_sample"那個官方的空間數據庫的例子),那么就有可能是空間數據庫沒有成功創建,什么意思呢?就是說你只創建了一個普通數據庫(沒有空間字段,自然就不支持shp數據導入)。

如何判斷自己是否成功創建了空間數據庫呢?檢查,數據庫(Databases)——你的數據庫名稱——架構(Schemas)——public——表(Tables),這個目錄下是否存在一個名叫spatial_ref_sys的表,如果不存在,就說明你的數據庫不具備存儲空間數據的能力。

Snipaste_2020-04-26_14-27-23

那咋辦呢?首先讓我們打開postgreSQL的查詢工具,在菜單欄的工具選項里

Snipaste_2020-04-26_14-26-02

在查詢工具中輸入如下SQL語句,添加空間數據庫管理插件Postgis,運行。然后,刷新頁面

CREATE EXTENSION PostGIS
Snipaste_2020-04-26_14-26-56

現在數據表中就會出現名為spatial_ref_sys的表了,說明可以導入空間數據了。

關於postgis的具體使用可以參考下面這篇博客,雖然postgis版本不同但操作都是類似的。

搭建簡易Web GIS網站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM