Centos7.2下安装PostGIS及shp数据导入

一、安装前准备

PostGIS的安装和运行需要在PostgreSQL环境下,PostgreSQL具体安装可参考Centos7.2下安装postgresql10

postgis安装前可先安装写依赖:

geos 3.4.2, 可以使用yum install geos geos-devel
gdal 1.11.4, 可以使用yum install gdal gdal-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

二、安装PostGIS及shp数据导入

1、使用命令将Shape数据转换为*.sql文件(该命令直接在shp数据文件夹下打开控制台输入)

shp2pgsql -s 4326 -c -W "GBK" line.shp>line.sql

说明: -s:代表指定数据的SRID为3857,SRID为4326表示为WGS-84坐标系;

          -c:代表数据将新建一个表,这里可能的选项是 ;-d:删除旧的表,重新建表并插入数据; -a:向现有表中追加数据;-p:仅创建表结构,不添加数据。这四个参数是互斥的。

       -w:Shape文件中属性的字符集,通常Postgresql的字符集是UTF-8,有时候可能Shape数据中的字符集是其他,就可能报“Unable to convert data value to UTF-8 (iconv reports “无效或不完整的多字节字符或宽字符”). Current encoding is “UTF-8”. Try “LATIN1” (Western European)”错误,这时候指定正确的字符集即可解决方问题。

2、安装eprl包管理

yum -y install epel-release

3、各种安装

yum install postgresql10-server
yum install postgis24_10
yum install postgis2_10-client
yum install pgrouting_10
yum install ogr_fdw10

 

注:postgis2_10-client中包含了PostGIS的命名行工具,如:shp2pgsql,pgsql2shp,raster2pgsql等

 

4、安装PostGIS相关扩展

使用\c切换到数据库中,

\c traindata
create EXTENSION postgis;
create EXTENSION postgis_topology;
create EXTENSION fuzzystrmatch;

5、向数据库导入使用Shape数据生成的.sql文件

psql -d traindata -U postgres -f /tmp/shp/line.sql -W

说明:-d:代表数据库,traindata是我的数据库名称;

         -U:代表用户名,postgres是我的用户名名称;

         /tmp/shp/line.sql:是*.sql存放的路径。

6、数据验证

select count(ID) from line;

即可验证列表中数据的总条数。

7、验证导入结果,输入\d即可发现有新建的line表

 

 

 

转载自:https://blog.csdn.net/qq_38378235/article/details/80861966

You may also like...