我对postgres和postgis比较陌生,我试图根据一个名为坐标的列从数据库中检索数据,以及这些坐标离点(x,y)的接近程度我使用此查询:
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然后proj的问题,但现在我无法解决这个问题。
请帮忙。
答案 0 :(得分:0)
看起来您安装了一个版本的PostGIS,它需要的GEOS版本比您安装的版本要好。
您的PostGIS引用了GEOS函数GEOSMinimumClearance
,但您的GEOS库中并不存在,因此动态链接器会抛出错误。
安装更新版本的GEOS。
答案 1 :(得分:0)
可悲的是,我无法找出问题的原因,我认为这是由于同时安装了多个版本的postgre和postgis。
但是我能够找到解决方案!我遵循了这个guide。