1. 准备好Shape文件(不仅仅是.shp文悠扬,还要有其他相关数据文件,包括.shx、.prj、.dbf文件)。

2. 使用命令将Shape数据转换为*.sql文件

shp2pgsql -s 3857 -c -W "GBK" CLLX.shp>CLLX.sql

-s 代表指定数据的SRID为3857

-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)”错误,这时候指定正确的字符集即可解决方问题。

3.建立空间数据库,并导入数据

3.1 登录postgres用户,建立空的数据库,指定数据的所有者是gisdb用户(或者你数据库内的任意现有用户)

CREATE DATABASE shp2pgsqldemo WITH OWNER=gisdb;

3.2 使用 \c shp2pgsqldemo; 切换到shp2pgsqldemo数据库,并安装PostGIS相关扩展(安装PostGIS请参见这里)

\c shp2pgsqldemo;

CREATE EXTENSION postgis;

CREATE EXTENSION postgis_topology;

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

psql -d shp2pgsqldemo -U gisdb -f /tmp/shp/CLLX.sql -W

4. 验证数据

5.直接将Shape数据导入到数据表

shp2pgsql -s 3857 -c -W "GBK" /tmp/shp/CLLX.shp public.CLLX2 | psql -d shp2pgsqldemo -U gisdb -W

这里值的一提的是,刚才我们已经建了一个cllx表了,如果再导入可以使用 -d 参数删了重建,我这里为了演示功能,使用 <SCHEMA>.<DBTABLE> 数据重新建了一个表 CLLX2 ,如下图红框中所示。另外在导入过程中需要输入数据库用户的密码,在红色箭头所示的地方,命令执行会中断,等待输入密码,只需要输入密码后回车即可向下执行。

5.1验证导入结果,发现有新建的cllx2表

共18条数据

shp2pgsql向postgresql导入shape数据的更多相关文章

  1. 使用FWTools来导入shp数据到mysql

    使用FWTools来导入shp数据到mysql 参考地址 http://forums.mysql.com/read.php?23,122827,206841 软件下载链接 http://fwtools ...

  2. Geoserver+Postgresql+PostGIS 进行数据发布

    1.postgressql+postgis安装 由于我已经安装了,因此没法进行截图,给出下载地址 下载地址:https://www.postgresql.org/ 记得一定要下载edu的版本 因为这个 ...

  3. elasticsearch 导入基础数据并索引之 geo_point

    elasticsearch 中的地理信息存储, 有geo_point形式和geo_shape两种形式 此篇只叙述geo_point, 地理位置需要声明为特殊的类型, 不显示在mapping中定义的话, ...

  4. Leaflet入门:添加点线面并导入GeoJSON数据|Tutorial of Leaflet: Adding Points, Lines, Polygons and Import GeoJSON File

    Web GIS系列: 1.搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 2.使用GeoServer+QGIS发布WMTS服务 3.使 ...

  5. [转帖]PostgreSQL pg_dump&psql 数据的备份与恢复

    PostgreSQL pg_dump&psql 数据的备份与恢复   https://www.cnblogs.com/chjbbs/p/6480687.html 文章写的挺好 今天试了下 挺不 ...

  6. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. BCP导出导入大容量数据实践

    前言 SQL SERVER提供多种不同的数据导出导入的工具,也可以编写SQL脚本,使用存储过程,生成所需的数据文件,甚至可以生成包含SQL语句和数据的脚本文件.各有优缺点,以适用不同的需求.下面介绍大 ...

  8. SQL Server服务器上需要导入Excel数据的必要条件

    SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Ex ...

  9. PLSQL Developer导入Excel数据

    LSQL Developer导入Excel数据 最近处理将Excel数据导入Oracle的工作比较多.之前都是采用Sqlldr命令行导入的方式处理.每次导入不同格式的Excel表数据,都需要先把Exc ...

随机推荐

  1. altium designer 制作内部不铺铜的封装,如三极管下面禁止铺铜

    制作封装的时候,按P键或菜单栏中点击place选项点选Polygon Pour Cutout.画一个原件禁止铺铜区域即可.

  2. Web 应用程序项目 Himall.Web 已配置为使用 IIS。 无法访问 IIS 元数据库

    Web应用程序项目XXXX已配置为使用IIS.无法访问IIS元数据库.您没有足够的特权访问计算机上的IIS网站,xxxxiis 问题:Windows8下直接使用VS打开项目,出现问题:XXXX已配置为 ...

  3. php的运行模式

    1.php最常见的五种运行模式. CGI 通用网关接口 FastCGI 常驻内存的CGI CLI 命令行 Web模块  Apache等Web服务器 模块的形式加载php进程 ISAPI 已经不用了

  4. oracle入坑日记<三>用户详解(角色理解)

    1   用户是什么 1.1.权限管理是Oracle的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限.Oracle 的权限分为系统权限和数据对象权限,共一百多种.如果把Oracl ...

  5. linux 文件描述符

    文件描述符是什么?和文件句柄有啥区别?文件描述符是linux/unix操作系统中特有的概念.相当于windows系统中的文件句柄.一个意思不同叫法.Linux系统中, 每当进程打开一个文件时,系统就为 ...

  6. strace参数

    strace参数 -c 统计每一系统调用的所执行的时间,次数和出错的次数等. -d 输出strace关于标准错误的调试信息. -f 跟踪由fork调用所产生的子进程. -ff 如果提供-o filen ...

  7. for循环,while循环,do while循环

    for循环: for循环格式: for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; } 例子:取五位数各个位数的练习 public static void main(String[] ...

  8. AS3获得当前文件的文件名

    //当前文件的完整路径var fileUrl:String = this.loaderInfo.url;//查找路径的最后一个"/"var flag:int = fileUrl.l ...

  9. ESLint具体规则设置

    "no-alert": 0,//禁止使用alert confirm prompt "no-array-constructor": 2,//禁止使用数组构造器 & ...

  10. P1100 高低位交换

    题目描述 给出一个小于2^{32}232的正整数.这个数可以用一个3232位的二进制数表示(不足3232位用00补足).我们称这个二进制数的前1616位为“高位”,后1616位为“低位”.将它的高低位 ...