13

我有一个包含大量地理编码数据的普通 postgres 数据库。这只是存在纬度和经度两列。

我想将此数据库转换为 PostGIs 数据库。任何人都可以建议我转换我拥有的数据库的方法吗?我不想创建一个新的基于 postgis tempalte 的数据库,然后一一移动整个数据。

4

2 回答 2

14

首先,确保系统上安装了 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;
于 2013-02-24T22:05:50.403 回答
2

我知道这是旧的......但我会添加一些东西来解决以前的问题:

@Cerin,确保您 apt-get install postgresql-xx-postgis-2.1,而不仅仅是 apt-get install postgis。我之前也遇到过这个问题

于 2014-07-18T19:30:43.263 回答