Postgis 和 Postgresql:类型错误 "st_point" 不存在

Postgis and Postgresql: type error "st_point" does not exist

我按照 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)

谁能知道如何解决这个问题?

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

ST_Point 不是类型而是函数,returns 点类型的几何体。

因此正确的语法是:

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