我按照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)
有人可能知道如何解决这个问题吗?
答案 0 :(得分:3)
PostGis只创建一个通用类型geometry
。 geometry
类型的对象可以是点,多边形等。
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