Postgis 和 Postgresql:类型错误“st_point”不存在
Posted
技术标签:
【中文标题】Postgis 和 Postgresql:类型错误“st_point”不存在【英文标题】:Postgis and Postgresql: type error "st_point" does not exist 【发布时间】:2016-01-20 08:47:54 【问题描述】:我按照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】: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
【讨论】:
以上是关于Postgis 和 Postgresql:类型错误“st_point”不存在的主要内容,如果未能解决你的问题,请参考以下文章
在java中存储PostgreSQL/PostGIS“几何(多多边形)”数据类型
PostgreSQL , PostGIS , 球坐标 , 平面坐标 , 球面距离 , 平面距离
更改 LC_CTYPE 以供 PostgreSQL 和 PostGIS 使用