2017-03-09 69 views
-1

我是相對較新的postgres和postgis,我試圖從一個名爲座標的列檢索數據庫中的數據,以及這些座標距離點(x,y)的我用這個查詢:Postgis錯誤:無法加載庫「postgis-2.3.so」

SELECT * FROM myTable 
WHERE ST_DWithin(
Geometry(coordinates), 
Geometry(ST_MakePoint(5,5)), 
800); 

我得到了一個錯誤:

ERROR: could not load library 
"/Applications/Postgres.app/Contents/Versions/9.6/lib/postgresql/postgis-2.3.so": 
dlopen(/Applications/Postgres.app/Contents/Versions/9.6/lib/postgresql/posgis-2.3.so, 10): 
Symbol not found: _GEOSMinimumClearance 
Referenced from: 
/Applications/Postgres.app/Contents/Versions/9.6/lib/postgresql/postgis-2.3.so 
Expected in: flat namespace 
in 
/Applications/Postgres.app/Contents/Versions/9.6/lib/postgresql/postgis-2.3.so 

我已經解決了安裝GEOS然後凸出以前的問題,但現在我不能解決這個問題之一。

請幫忙。

回答

0

看起來您似乎已經安裝了需要比您安裝的GEOS更高版本的GEOS版本的PostGIS。

您的PostGIS引用了GEOS功能GEOSMinimumClearance,但在您的GEOS庫中不存在,所以動態鏈接器會引發錯誤。

安裝更新版本的GEOS。

+0

我想我有最新版本(3.6.1)我從這裏[鏈接](https://trac.osgeo.org/geos) –

0

很遺憾,我無法找出問題的原因,我想這是因爲同時安裝了多個版本的postgre和postgis。

但是我找到了解決方案!我跟着這個guide