文档章节

postgis的shp2pgsql使用

威武不能笑
 威武不能笑
发布于 2013/12/05 12:05
字数 627
阅读 1862
收藏 0

先来段python代码:


import os
from cStringIO import StringIO

from proj import db_oper

shape_base_dir = r'C:\Users\user_aaa\Desktop\compress\\'
des_file_dir = 'D:\shp_sql\\'

gis_frame = '4326'
gis_char = 'CP874'
shp_file = ''



file_name_dic = {}
for files in os.walk(shape_base_dir):
 #os.walk返回一个元组:files[0]——根目录
 #files[1]——根目录包含的次级目录
 #files[2]——包含的文件
 file_name_set = {}
 if len(files[2]) > 0:
 #print files[0].split('\\')
     print files[2]
     for file_p in files[2]:
         file_name_set[file_p[0:-4]] = ''
     for file_p in file_name_set.keys():
         if file_p in file_name_dic.keys():
             #-a  追加 -c 新建
             #-D  dump方式,处理大数据
             #-s  坐标
             #-w  字符集
             shp_file = '"'+files[0]+'"'+'\\'+file_p
             le_dir+'"'+files[0].split('\\')[-1]+file_p+'"'+'.sql')
         else :
             file_name_dic[file_p] = ''
             shp_file = '"'+files[0]+'"'+'\\'+file_p
             os.system('shp2pgsql -c -D -s '+gis_frame+' -W '+gis_char+' '+shp_file+' org_'+file_p+' >'+des_file_dir+'"'+files[0].split('\\')[-1]+file_p+'"'+'.sql')

 
 
 
 

  
  

再来postgis文档中,对shp2pgsql的解释:

(c|a|d|p) These are mutually exclusive options:
    -c Creates a new table and populates it from the shapefile. This is the default mode.
    -a Appends data from the Shape file into the database table. Note that to use this option to load multiple files, the files must have the same attributes and same data types.
    -d Drops the database table before creating a new table with the data in the Shape file.
    -p Only produces the table creation SQL code, without adding any actual data. This can be used if you need to completely separate the table creation and data loading steps.
-? Display help screen.
-D Use the PostgreSQL "dump" format for the output data. This can be combined with -a, -c and -d. It is much faster to load
than the default "insert" SQL format. Use this for very large data sets.
-s <SRID> Creates and populates the geometry tables with the specified SRID.
-k Keep identifiers’ case (column, schema and attributes). Note that attributes in Shapefile are all UPPERCASE.
-i Coerce all integers to standard 32-bit integers, do not create 64-bit bigints, even if the DBF header signature appears to warrant
it.
-I Create a GiST index on the geometry column.
-w Output WKT format, for use with older (0.x) versions of PostGIS. Note that this will introduce coordinate drifts and will
drop M values from shapefiles.
-W <encoding> Specify encoding of the input data (dbf file). When used, all attributes of the dbf are converted from the
specified encoding to UTF8. The resulting SQL output will contain a SET CLIENT_ENCODING to UTF8 command,
so that the backend will be able to reconvert from UTF8 to whatever encoding the database is configured to use internally.
-N <policy> NULL geometries handling policy (insert*,skip,abort)
-n -n Only import DBF file. If your data has no corresponding shapefile, it will automatically switch to this mode and load just
the dbf. So setting this flag is only needed if you have a full shapefile set, and you only want the attribute data and no
geometry.
-G Use geography type instead of geometry (requires lon/lat data) in WGS84 long lat (SRID=4326)





© 著作权归作者所有

威武不能笑
粉丝 2
博文 62
码字总数 12743
作品 0
黄浦
程序员
私信 提问
PostGIS 2.4.0 发布,PG 的空间数据存储扩展

PostGIS 2.4.0 已发布,PostGIS 在对象关系型数据库 PostgreSQL 上增加了存储管理空间数据的能力,相当于 Oracle 的 spatial 部分。PostGIS 最大的特点是符合并且实现了 OpenGIS 的一些规范,...

王练
2017/10/05
474
1
postGIS在windows下的安装与应用(转载)

转载自:http://www.gispark.com/html/open%20source/2006/1024/388.html postGIS在windows下的安装与应用: 目前,windows下的版本,postgresql官方已经开始支持,目前是8.0.1版本。POSTGIS...

黄昏的金牛
2010/08/24
2.4K
0
【环境配置】Geoserver如何访问shapefile或PostGIS数据库

geoserver 中一个FeatureType对应一个地图的图层,同一个FeatureType里的所有要素的几何类型都相同,即不允许点和线同层等类似情况出现。 FeatureType中规定着这个图层的样式范围等信息,创建...

JungleKing
2014/01/08
271
0
【环境配置】 geoserver、openlayers、PostgreSQL 开发环境配置

1.准备工作   1)PostgreSQL http://www.postgresql.org/   2)Geoserver http://geoserver.org/display/GEOS/Download   3)Openlayers http://trac.openlayers.org/wiki/HowToDownloa......

JungleKing
2014/01/05
790
0
PostGIS 2.1.0 发布,PG 的空间数据存储扩展

PostGIS 2.1.0 发布了,该版本主要是重点是性能提升,bug 修复和一些小的新特性。 如果你正在使用 PostGIS 2.0+,可使用如下命令升级: ALTER EXTENSION postgis UPDATE TO "2.1.0"; 手工下载...

oschina
2013/08/19
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

c语言实现Sqlite3的创建db和增删改查db操作

SQLite,是一款轻型的数据库,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中使用广泛,现在准备学习一下sqlite3的使用方法并写一个测试demo,后面在项目智能...

jorin_zou
24分钟前
4
0
【2019年8月版本】OCP 071认证考试最新版本的考试原题-第2题

choose three Which three are true about the CREATE TABLE command? A) It can include the CREATE...INDEX statement for creating an index to enforce the primary key constraint. B) ......

oschina_5359
27分钟前
5
0
如何在二维码中循环批量插入图片

现在二维码种类比较多,为了突出二维码的个性及吸引客户,很多朋友都喜欢在二维码上插入图片。想要每个二维码都与众不同,但是有的时候需要批量插入图片数量有限,如果制作的二维码比较多的话...

中琅软件
28分钟前
6
0
LTR那点事—AUC及其与线上点击率的关联详解

LTR(Learning To Rank)学习排序是一种监督学习(SupervisedLearning)的排序方法,现已经广泛应用于信息索引,内容推荐,自然语言处理等多个领域。以推荐系统为例,推荐一般使用多个子策略...

达观数据
29分钟前
5
0
IntelliJ 如何显示代码的代码 docs

希望能够在 IntelliJ 代码上面显示方法的 docs。 如何进行显示? 你可以使用 Ctrl + Q 这个快捷键来查看方法的 Docs。 https://blog.ossez.com/archives/3061...

honeymoose
32分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部