连接到postgres时发生rgdal错误

连接到postgres时发生rgdal错误,r,postgresql,driver,dbconnection,rgdal,R,Postgresql,Driver,Dbconnection,Rgdal,我正在使用Mac Os 10.9.2和R版本3.0.2。 我使用dbDriver()和dbConnect()启动到数据库的连接。接下来,我尝试使用连接到我的postgres数据库 c = readOGR("PG:dbname=OB", layer="geo.countries") 这不起作用,并且总是返回“无法打开文件”错误。 据我所知,这是因为PostgreSQL没有驱动程序。通过使用命令ogrDrivers() 有人能帮我安装驱动程序吗?或者我怎样才能做到这一点?非常感谢您的帮助 谢谢 如

我正在使用Mac Os 10.9.2和R版本3.0.2。 我使用
dbDriver()
dbConnect()
启动到数据库的连接。接下来,我尝试使用连接到我的postgres数据库

c = readOGR("PG:dbname=OB", layer="geo.countries")
这不起作用,并且总是返回“无法打开文件”错误。 据我所知,这是因为PostgreSQL没有驱动程序。通过使用命令
ogrDrivers()

有人能帮我安装驱动程序吗?或者我怎样才能做到这一点?非常感谢您的帮助


谢谢

如果没有正确的驱动程序,gdal/ogr通常会抛出错误

找不到驱动程序PostgreSQL

首先,确保数据库和层存在。如果确实没有安装Postgres的驱动程序,则必须重新安装gdal。使用自制软件:

brew uninstall gdal
brew install gdal --with-postgresql

另请参见。

如果您确实确定gdal已正确安装,请确保您的dns已完全指定(它的参数多于dbname)

此外,如果表包含多个空间列(层),则必须指定所需的空间列:

layer = "DB.TABLE(YOUR_SPATIAL_COLUMN)"
我花了一段时间才发现。但调用函数后这一点很明显

ogrListLayers()


它对我有用。只有一个问题,如果表中有一些光栅列,则不会将其排除(与所有其他图层/空间列一样)。相反,它将被加载到spatialobject@data数据框作为文本列。在大锉刀的情况下很烦人。我已经为此发布了。

谢谢!我使用自制软件重新安装了gdal,但命令行c=readOGR(“PG:dbname=OB”,layer=“geo.countries”)仍然显示错误“无法打开文件”。我确信数据库和层是存在的。知道我的命令行是不是错了吗?或者其他一些可能的问题?我在这里真是不知所措。。
layer = "DB.TABLE(YOUR_SPATIAL_COLUMN)"