PostGIS
切换深色/浅色/自动模式 - PostGIS 空间数据库 切换深色/浅色/自动模式 - PostGIS 空间数据库 切换深色/浅色/自动模式 - PostGIS 空间数据库 返回主页 - PostGIS 空间数据库

启用 PostGIS 光栅驱动程序和数据库外光栅支持

有人以某种形式向我提出了这个问题,至少有 3 次,大多数人感到困惑,不知道为什么会出现此错误。最后一次迭代类似于此

在执行类似操作时,我无法使用 ST_AsPNG

SELECT ST_AsPNG(rast)
    FROM  sometable;

给出错误:警告:pg_query():查询失败:错误:rt_raster_to_gdal:无法加载输出 GDAL 驱动程序。

那么为什么会发生这种情况?自我们发布 2.0.6/2.13 PostGIS 安全补丁以来,一直存在这个问题,这些补丁默认禁用所有光栅驱动程序和数据库外光栅存储。如果没有启用任何光栅驱动程序,光栅的用处会小得多,因此你需要重新启用它们或启用你需要的选择性驱动程序。

确定你已启用的驱动程序第一步是找出你已启用的驱动程序(如果有)。你可以使用 ST_GDALDrivers 函数来确定

SELECT short_name
 FROM ST_GDALDrivers();

启用 PostGIS 2.2 之前的驱动程序如果没有记录返回,则表示所有驱动程序的默认配置均已禁用。你需要在 postgres 启动脚本或系统环境中设置一些环境变量。该过程在不同平台和 PostgreSQL 的安装方式之间差异很大。文档中对此进行了详细说明。

为了启用全部或你需要的驱动程序,请参阅:安装简短版本。对于使用安装程序的 Windows 用户,安装程序在最后会提示你是否要启用驱动程序并启用最常见的驱动程序。

PostGIS 2.2 光栅 GUCS 中的新增内容在尚未发布的 PostGIS 2.2 版本中,我们希望在 2015 年 8 月或 9 月发布,引入了一些 PostgreSQL PostGIS 特定的 GUC,允许你使用 PostgreSQL GUC 机制以跨平台方式执行此操作。如果你有 PostgreSQL 9.4,你可以使用新的 ALTER SYSTEM 构造来设置此系统,而不是在特定数据库或会话中设置。

新的 GUC 在以下内容中进行了详细说明:postgis.gdal_enabled_driverspostgis.enable_outdb_rasters