Shapefile导入PostGIS的两种方法介绍及比较
阅读全文或更多精彩内容可关注YouGIS博文或微信公众号(yougis可扫下方二维码)。欢迎关注YouGIS顽石公众号yougis主页yougis.com.cn博客blog.yougis.com.cn工具https://yougis.com.cn/tool/home前面一篇博文介绍了PostGIS的安装注意事项接下来就涉及到Shapefile文件导入到PostGIS数据库的问题。导入主要有命令法和工具法两种命令法的思路是先将shapefile生成sql脚本然后执行脚本导入到数据库中详见安装postgis,使用postgis导入shapefile的步骤总结。本篇博文主要介绍工具法使用PostGIS自带工具PostGIS Shapefile and Dbf Loader Exporter和QGIS 在入库时的区别及注意事项。一、使用PostGIS自带工具入库具体入库方式以截图辅助文字的方式进行说明。可以从程序目录或者pgAdmin III 的插件中打开打开的界面如下图所示如下图所示单击 Add File 可以选择需要入库的 Shapefile文件可以设置数据库模式Schema、数据表的名称Table默认为Shapefile文件名称、Geo Column名称几何列名称默认为geom我尝试设置为geometry但表中还是geom还不知道原因、空间参考IDSRID默认为0可根据需要设置为 4326或3857等、模式Mode如创建新表、在表后追加数据、删除数据等。注意表格名称最好为 小写字母若出现大小写混合或全部为大写字母则查询等操作时需要将表名称用双引号()引起来。如下图还可以设置入库时的其他选项如dbf文件的字符编码方式默认为 UTF-8。据一位高人讲ArcGIS的默认编码方式为GBK若Shapefile文件为ArcMap生成且属性值含有中文此处最好选择GBK编码否则可能会出现乱码。此种说法的真实性有待检验我入库时都是用默认设置还未出现中文乱码的现象。从上到下其他复选框的含义依次为2保持列名称的大小写3不创建bigint类型的列4加载后自动创建空间索引默认勾选5只加载dbf属性数据6通过复制而不是插入的方式加载数据默认勾选尚不明白含义7加载到GEOGRAPHY列8生成简单几何代替MULTI几何若几何要素本身为多部件则还是会生成MULTI类型的几何要素后面对进一步说明。以上设置完成后点击Import即可完成数据的导入。导入后在Public模式下可以看到数据如下图所示。从数据中可以看出1几何的空间参考为 43262几何类型为MultiPolygon因有多部件要素。二、使用QGIS入库连接PostGIS数据库后具体连接方法自行搜索在QGIS菜单如下操作Database→DBManager如下图所示。图中PostGIS下面即为我的一个PostGIS数据库连接单击箭头所指的 导入即可打开导入矢量图层的对话框。如下图所示导入对话框主要分为三部分:1选择待导入的文件2输出数据表分别为模式和数据表名称 3其他选择依次为 1主键 2几何字段名称默认为geom可自己定义其他名称 3数据文件SRID和目标SRID可根据需要设置 4编码方式默认为UTF-8 5如果数据表存在是否替换 6用单部件要素代替多部件 7字段名称转为小写 8创建空间索引。可根据需要确定是否勾选。如下图所示为导入PostGIS中的数据记录可以看出几何字段的类型为 MultiLineString空间参考为 4326。三、两种入库方式的比较两种方式均可以将Shapefile文件导入到PostGIS中但也存在以下区别1. 几何要素数据类型的区别。在要素均为单部件single-part的条件下默认情况下PostGIS自带工具的几何类型依次为Point、LineString和PolygonQGIS入库的类型依次为MultiPoint、MultiLineString和MultiPolygon。若后期涉及WFS-T操作则绘制几何的类型TYPE必须与数据表的类型一致这一点务必注意2. 使用PostGIS自带工具入库方便快捷而使用QGIS则需要额外安装但可以在连接QGIS的基础上对入库前后的数据进行可视化编辑。以上是对两种入库方式的详细介绍具体使用哪种方式需要根据情况确定谢谢。