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