Postgis和Postgresql:输入错误" st_point"不存在

时间:2016-01-20 08:47:54

标签: ubuntu-14.04 postgis postgresql-9.4

我按照https://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS21UbuntuPGSQL93Apt指南在Ubuntu 14.04上设置了PostGIS,尽管这个过程本身非常流畅,但结果并没有那么有意义。

即使我能够使用CREATE EXTENSION postgis;在数据库中创建扩展程序,仍然查询ALTER TABLE "realties" ADD "coordinates" ST_Point;会引发ERROR: type error "st_point" does not exist

服务器版本是9.4.5(包postgresql-9.4-postgis-2.1)

有人可能知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

PostGis只创建一个通用类型geometrygeometry类型的对象可以是点,多边形等。

ST_Point不是类型,而是返回Point类型几何的函数。

因此正确的语法是:

ALTER TABLE "realties" ADD "coordinates" geometry(Point);

如果您知道将使用哪个SRID,那么在示例中指定srid是一个好习惯:

ALTER TABLE "realties" ADD "coordinates" geometry(Point, 4326);

如果您不确定,您将存储哪种几何形状,请勿指定任何内容:

ALTER TABLE "realties" ADD "coordinates" geometry;

PS:Postgis还提供geography类型,类似于geometry。如需更多信息:http://postgis.net/docs/using_postgis_dbmanagement.html#PostGIS_Geography