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 只创建一个通用类型 geometry
。 geometry
类型的对象可以是点、多边形等。
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
我按照 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 只创建一个通用类型 geometry
。 geometry
类型的对象可以是点、多边形等。
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