一 安装

PostGIS的安装及本是无障碍的。不管是Red Hat系的YUM还是Ubuntu系的APT都可以轻松安装。以Ubuntu为例的话,只需要轻松执行下面的明令即可:

apt-get -y install postgresql-14-postgis-3

这里注意上面的14对应的是本机已安装PostgreSQL的主版本号。因为PostGIS是作为插件存在的,所以最好先装好一个可用的PostgreSQL服务,然后再安装对应版本的插件。

二 启用插件

PostgreSQL来说,一个好的实践是把安装的插件,单独控制在一个schema里面。因为插件往往会带来各种各样的函数或者表,我们应该把这些非自己维护的资源与自己的业务表区分开。所以建议执行下面两行SQL语句,以安装(启用)插件。

CREATE SCHEMA extensions;
CREATE EXTENSION postgis SCHEMA extensions;

三 简单测试

一切顺利的话,我们就可以测试PostGIS的基本功能了:

-- 查询北京到南京的距离,单位米
select extensions.st_distance(extensions.st_point( 116.2,39.56), extensions.st_point( 118.78,32.04), true);

因为我们把PostGIS的相关函数等资源都装在可schema下,所以调用函数的时候,就需要加上schema的名字了。这里稍微有点麻烦。所以需要修正下数据库的search_path

alter database postgres set search_path = public,extensions;
set search_path = public,extensions;

第一句的postgres对应你在用的数据库名,所以要根据实际情况做些调整。同时,第一句的设置,只有在下次客户端连接到数据库的时候才会启用,如果想要当前执行SQL的上下文环境即时生效,所以才有了第二句。

一切设置完毕后,我们就可以直接这样执行了:

select st_distance(st_point( 116.2,39.56), st_point( 118.78,32.04), true);