CentOS7下安装PostGIS

CentOS7下安装PostGIS

写在安装之前

PostGIS的安装和运行需要在PostgreSQL环境下,故本人安装的环境是:

  • CentOS 7 64位

  • PostgreSQL 10.3,具体安装可参考CentOS7 下安装 PostgreSQL10

  • PostGIS 2.4.3, 安装过程看本文介绍

  • geos 3.4.2, 可以使用yum install geos geos-devel

  • gdal 1.11.4, 可以使用yum install jdal gdal-devel

  • libxml 2 2.9.1, 可以使用yum install libxml2 libxml2-devel

  • proj 4.8.0, 可以使用yum install proj proj-devel

  • json-c 0.11, 可以使用yum install json-c json-c-devel

  • pcre 8.32, 可以使用yum install pcre pcre-devel

  • protobuf-c 1.02, 可以使用yum install protobuf-c-devel

注: 具体PostgreSQL与PostGIS之间版本的对应可查看osgeo官网说明文档

PostGIS及其扩展的安装

  1. 安装PostGIS

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    wget https://download.osgeo.org/postgis/source/postgis-2.4.3.tar.gz

    tar -zxvf postgis-2.4.3.tar.gz

    cd postgis-2.4.3

    ./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config

    make

    make install
  2. 安装PostGIS扩展

    PostGIS扩展文件在解压后的源文件夹的extension文件夹下,具体安装如下所示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    cd extension

    cd postgis_sfcgal

    make clean & make & make install

    cd postgis_tiger_geocoder

    make clean & make & make install

    cd postgis_topology

    make clean & make & make install

    cd address_standardizer

    make clean & make & make install

在PostgresSQL数据库创建PostGIS

  1. 使用已有的sql文件创建

    所有的SQL语句文件在PostGIS安装成功后,存放在/usr/local/pgsql/data/share/contrib/postgis-2.4/文件夹下

    具体使用方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    ./bin/createdb postgisdb/
    ./bin/psql -d postgisdb -f ./share/contrib/postgis-
    2.4/postgis.sql

    ./bin/psql -d postgisdb -f ./share/contrib/postgis-
    2.4/postgis_comments.sql

    ./bin/psql -d postgisdb -f ./share/contrib/postgis-
    2.4/spatial_ref_sys.sql

    ./bin/psql -d postgisdb -f ./share/contrib/postgis-
    2.4/topology.sql

    ./bin/psql -d postgisdb -f ./share/contrib/postgis-
    2.4/topology_comments.sql

    --Raster--
    ./bin/psql -d postgisdb -f ./share/contrib/postgis-
    2.4/rtpostgis.sql

    ./bin/psql -d postgisdb -f ./share/contrib/postgis-
    2.4/raster_comments.sql

    -sfcgal--
    ./bin/psql -d postgisdb -f ./share/contrib/postgis-
    2.4/sfcgal.sql

    ./bin/psql -d postgisdb -f ./share/contrib/postgis-
    2.4/sfcgal_comments.sql
  2. 通过语言创建

    具体创建方式如下:

    1
    2
    3
    ./bin/psql -d postgisdb -c "CREATE EXTESNSION postgis"

    ./bin/psql -d postgisdb -c "CREATE EXTESNSION postgis_topology"

查看PostgreSQL的扩展

1
2
3
4
-- 显示所有扩展
SELECT * FROM pg_available_extensions;
-- 显示PostGIS扩展
SELECT * FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';