我正在使用 Mac Os 10.9.2 和 R 版本 3.0.2。 我使用
dbDriver()
和 dbConnect()
启动与数据库的连接。接下来,我尝试使用连接到我的 postgres 数据库
c = readOGR("PG:dbname=OB", layer="geo.countries")
这不起作用,并且总是返回“无法打开文件”错误。 我从https://stat.ethz.ch/pipermail/r-sig-geo/2010-January/007519.html了解到,这是因为缺少 PostgreSQL 驱动程序。使用命令
ogrDrivers()
可以看出
有人可以帮助我如何安装驱动程序吗?或者我怎样才能做到这一点?非常感谢任何帮助!
谢谢!
在没有合适的驱动程序的情况下,gdal/ogr 通常会抛出类似
的错误Unable to find driver PostgreSQL
首先确保数据库和图层存在。如果确实未安装 Postgres 驱动程序,则必须重新安装 gdal。使用自制软件:
brew uninstall gdal
brew install gdal --with-postgresql
另请参阅这个问题。
如果您确实确定 gdal 已正确安装,请确保您的 dns 已完全指定(它的参数比 dbname 更多)
dsn="PG:dbname=DB host=HOST user=USER password=PSSWD port=5432"
此外,如果您的表包含多个空间列(层),您必须指定所需的空间列:
layer = "DB.TABLE(YOUR_SPATIAL_COLUMN)"
我花了一段时间才找到答案。但调用函数后就很明显了
ogrListLayers()
这对我有用。只有一个问题,如果表中有一些栅格列,则不会将其排除(与所有其他图层/空间列一样)。相反,它将作为文本列加载到空间对象@数据数据框中。在大光栅的情况下非常烦人。我为此发布了问题。