我有一个包含大量地理编码数据的普通 postgres 数据库。这只是存在纬度和经度两列。
我想将此数据库转换为 PostGIs 数据库。任何人都可以建议我转换我拥有的数据库的方法吗?我不想创建一个新的基于 postgis tempalte 的数据库,然后一一移动整个数据。
我有一个包含大量地理编码数据的普通 postgres 数据库。这只是存在纬度和经度两列。
我想将此数据库转换为 PostGIs 数据库。任何人都可以建议我转换我拥有的数据库的方法吗?我不想创建一个新的基于 postgis tempalte 的数据库,然后一一移动整个数据。
首先,确保系统上安装了 PostGIS,然后使用以下命令为数据库创建PostGIS 扩展:
CREATE EXTENSION postgis;
接下来,使用几何列在空间上启用每个表,并使用长/纬度数据点填充该列:
ALTER TABLE mytable ADD COLUMN geom geometry(Point,4326);
UPDATE mytable SET geom = ST_SetSRID(ST_MakePoint(long, lat), 4326);
还可以考虑使用地理类型:
ALTER TABLE mytable ADD COLUMN geog geography(Point,4326);
UPDATE mytable SET geog = ST_MakePoint(long, lat)::geography;
我知道这是旧的......但我会添加一些东西来解决以前的问题:
@Cerin,确保您 apt-get install postgresql-xx-postgis-2.1,而不仅仅是 apt-get install postgis。我之前也遇到过这个问题