ubuntu 18.04 安装postgre+postgis+pgadmin3+导入shapefile

1、首先安装postgresql,postgis,pgadmin3

sudo apt-get install postgresql

sudo apt-get install postgis

sudo apt-get install pgadmin3

2、安装后会自动创建一个名为postgres的数据库用户和一个名为postgres的操作系统用户, 密码随机,因此需要修改两个用户的密码。

登陆操作系统时,相当于用你的用户打开一个shell程序,

(1)修改数据库用户postgres密码:

以用户postgres进入psql交互环境

sudo -u postgres psql

 修改postgres用户的密码

alter user postgres with password’密码’;

退出数据库 

\q

(2)修改linux系统密码:

删除postgres用户密码

sudo passwd -d postgres

设置新密码

sudo -u postgres passwd

根据提示输入新密码

3、创建database、schema,并在该数据库中启用postgis扩展

进入psql交互环境

sudo -u postgres psql

创建数据库

CREATE DATABSE shpdb;

创建schema

CREATE SCHEMA shpschema;

进入刚才创建的数据库

\c shpdb

在该数据库中启用postgis扩展

CREATE EXTENSION postgis;

可以通过 \dx 查看安装的扩展

(还有另一种方法,是用postgis的template新建数据库,这里不详细介绍了)

4、下载shp数据,这里以下载的中国地图zip文件为例

用windows压缩的zip在ubuntu直接打开或unzip会导致文件名乱码(二者默认编码不一致)所以unzip时需要指定字符集

unzip -O GBK xxx.zip

5、导入shp文件

shp2pgsql -s 4326 -I “xxx.shp” shpschema.city | psql -h localhost -p 5432 -d shpdb -U postgres -W

具体参数使用shp2pgsql –help进行查看 
-s指定空间参考系
-I指定在新建的关系表的空间对象的那一列建立空间索引 
然后,双引号引起来的是Shapefile的文件名称(也可以不加扩展名.shp) 
最后是关系表的全名,shpschema是schema名称,city是关系名称 
shp2pgsql的输出是一个标准的SQL,然后Linux的管道操作符’|’将结果传入到psql中进行SQL的执行。 
-h指定连接的地址hostname 
-p指定连接的端口号 
-d指定连接的数据库名称 
-U指定连接的用户名 
-W指定在执行时弹出密码输入提示

执行成功后可进入psql从数据库中查看数据

\dt shpschema

 6、最后附上python3安装psycopg2、ogr、PIL的几行命令

sudo pip3 install psycopg2

sudo apt-get install python3-gdal

sudo pip3 install pillow

参考博客:

https://blog.csdn.net/theonegis/article/details/55046419 

https://www.cnblogs.com/nyist-xsk/p/7742151.html 

转载自:https://blog.csdn.net/sinat_28853941/article/details/87989051

You may also like...