PostgreSQL (shp2pgsql) AddGeometryColumn 给出“没有函数与给定名称匹配”

Ric*_*ard 3 postgresql postgis

我正在使用PADUS OBI 形状文件,但这可能并不重要。

我使用默认选项通过 shp2pgsql 运行形状文件,如下所示:

shp2pgsql PADUS_1_1_CBI_Edition.shp > PADUS.sql
Run Code Online (Sandbox Code Playgroud)

然后我尝试通过执行以下操作将 SQL 导入 Postgres:

psql -d padusdb -f PADUS.sql
Run Code Online (Sandbox Code Playgroud)

并出现以下错误:

psql:PADUS.sql:36: ERROR:  function addgeometrycolumn(unknown, unknown, unknown, unknown, unknown, integer) does not exist
LINE 1: SELECT AddGeometryColumn('','padus_1_1_cbi_edition','the_geo...
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)

我安装了 PostGIS。

导致错误的 SQL 命令(被放入一个空数据库中)是:

SET CLIENT_ENCODING TO UTF8;
SET STANDARD_CONFORMING_STRINGS TO ON;
BEGIN;
CREATE TABLE "padus_1_1_cbi_edition" (gid serial PRIMARY KEY,
"us_id" int4,
"category" varchar(10),
"gis_acres" numeric,
...
BUNCH OF COLUMNS, none of which is called "the_geom"
...
"comments" varchar(200),
"shape_leng" numeric,
"shape_area" numeric);
SELECT AddGeometryColumn('','padus_1_1_cbi_edition','the_geom','-1','MULTIPOLYGON',2);
COMMIT;
Run Code Online (Sandbox Code Playgroud)

对于这可能意味着什么以及如何解决问题有什么想法吗?

Ric*_*ard 5

因此,事实证明,仅仅在计算机上安装 PostGIS 是不够的。

最初,我选择了sudo apt-get install postgresql postgisUbuntu 10.10。这给我留下了 PostGRE 8.4 的工作版本,但没有 PostGIS 的迹象。

因此,我尝试了sudo apt-get install postgresql-8.4-postgis

但一个人的工作还没有结束!您需要设置 PostGIS 数据库。

网站提供了有关执行此操作以及随后使用数据库的说明。