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