qgis绘制图层,并导入shp到postgis

环境:
QGIS:QGIS-OSGeo4W-3.14.1-1-Setup-x86_64

下载地址-请下载独立安装版本:

https://www.qgis.org/zh-Hans/site/forusers/download.html

PostgreSQL:12

下载地址:https://www.postgresql.org/download/

postgis:postgis-bundle-pg12x64-setup-3.0.1-3

 下载地址:http://download.osgeo.org/postgis/windows/pg12/

可以将postgis安装覆盖到postgresql中并创建数据库,省去很多麻烦

安装后可以创建一个库并验证是否成功:

create database postgis_test OWNER = postgres ENCODING = 'UTF8';
CREATE EXTENSION postgis;
SELECT postgis_full_version();

-- 简单使用:
CREATE TABLE table1 (
id int primary key
  );
 
 alter table table1 add column name text;
-- 添加坐标列 使用EPSG:4326 坐标系统
SELECT AddGeometryColumn ('table1', 'the_geom', 4326, 'POINT', 2);

 INSERT INTO table1(id, the_geom, name) 
VALUES (4,ST_GeomFromText('POINT(-0.1257 51.508)',4326),'London, England')
, (2,ST_GeomFromText('POINT(-81.233 42.983)',4326),'London, Ontario')
, (3,ST_GeomFromText('POINT(27.91162491 -33.01529)',4326),'East London,SA');
  select * from table1;
 -- 十六进制不便于查看,要转为十进制
 SELECT id, ST_AsText(the_geom), ST_AsEwkt(the_geom), ST_X(the_geom), ST_Y(the_geom) FROM table1;

-- 计算两点距离,旧版本
SELECT p1.name,p2.name,st_distance_sphere(p1.the_geom,p2.the_geom) FROM table1 AS p1, table1 AS p2 WHERE p1.id > p2.id;
-- 新版本
SELECT p1.name,p2.name, ST_DistanceSphere(p1.the_geom,p2.the_geom) FROM table1 AS p1, table1 AS p2 WHERE p1.id > p2.id;

QGIS介绍:

QGIS是一个用户界面友好的桌面地理信息系统,可运行在Linux、Unix、Mac OSX和Windows等平台之上。QGIS是基于Qt,使用C++开发的一个用户界面友好、跨平台的开源版桌面地理信息系统
QGIS软件的主要特点有:
1 支持多种GIS数据文件格式。通过GDAL/OGR扩展可以支持多达几十种数据格式.
2 支持PostGIS数据库。
3支持从WMS,WFS服务器中获取数据
4 集成了Grass的部分功能。
5 支持对GIS数据的基本操作,如属性的编辑修改等。
6 支持创建地图。
7 通过插件的形式支持功能的扩展

PostGIS简介 

PostGIS是对象关系型数据库系统PostgreSQL的一个扩展,PostGIS提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。同时,PostGIS遵循OpenGIS的规范。
PostGIS的版权被纳入到GNU的GPL中,也就是说任何人可以自由得到PostGIS的源码并对其做研究和改进。正是由于这一点,PostGIS得到了迅速的发展,越来越多的爱好者和研究机构参与到PostGIS的应用开发和完善当中

下面是测试步骤:

1) qgis软件,点击上方菜单的project –> new

2)layer –> Create layer –> New Shapefile Layer

3) 画图

4) 保存 

剩下的就是导入postgis中(如果不方便使用图形工具导入,可以使用命令行导入命令,请看后边参考)

1)打开shp2pgsql-gui并连接数据库

2)导入文件

将上面保存的文件放到一个没有中文目录的路径中

最后导入即可

如果失败,可以配置编码等信息

 

查看:

登录postgresql数据库查看是否成功

图形查看

 

命令行导入postgis步骤:

1)进入安装的postgresql的bin目录,执行

-- 其中-W 代表设置字符集,可以为UTF-8或者GBK等,t_china_map为shp导入的表名,后边的china为转换待导入的sql
D:\PostgreSQL\12\bin>shp2pgsql -W "UTF-8" "D:\PostgreSQL\shapefile\China\china.shp" t_china_map > "D:\PostgreSQL\shapefile\China\china.sql"
Field x is an FTDouble with width 19 and precision 11
Field y is an FTDouble with width 19 and precision 11
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]

2)导入数据

-- 第一行设置密码是为了可以在第二个命令上不输入密码
D:\PostgreSQL\12\bin>set PGPASSWORD=China
-- 具体导入
D:\PostgreSQL\12\bin>psql -d postgis_test1 -U username  -f "D:\PostgreSQL\shapefile\China\china.sql"
SET
SET
BEGIN
CREATE TABLE
ALTER TABLE
                    addgeometrycolumn
----------------------------------------------------------
 public.t_china_map.geom SRID:0 TYPE:MULTIPOLYGON DIMS:2
(1 行记录)
...


3)验证是否有表(t_china_map)和数据

其他shp文件:

https://www.naturalearthdata.com/

https://gadm.org/ 

一些shp文件:链接:https://pan.baidu.com/s/18kcXeKh4VksSdqsZ6VIg9w 
提取码:b9d6

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝闻道-夕死可矣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值